como dar ordenes por voz a tu celular en android studio

Hola vergasianos me preguntaron durante mucho tiempo como dar ordenes por voz a tu celular en android studio, ah! y de forma fácil si porque ustedes todo lo quieren fácil.
Verán después de que san google monetizara todo cof cof quise decir que nos muestre el camino de como programar necesitamos utilizar sus librerías, utilidades y etc de cosas que ellos creen que es importante para su crecimiento, así pues se me vino algo a la mente utilizar como servicio su propio modulo de búsqueda por voz e insertarla a nuestras aplicaciones, así podríamos iniciar el reproductor de música con solo pedirlo, apagar el wifi, llamar a un contacto, enviar mensaje a un contacto, apagar la pantalla del móvil (para esto necesitaremos permisos de root) etc.

 

como dar ordenes por voz a tu celular en android studio

Cosas que deberías saber sobre comando de voz de google
Google Now supone un portal de acceso al motor principal de búsqueda de Google, así que puedes preguntarle a tu querido asistente digital casi cualquier cosa que buscarías ahí: la altura de la Torre Eiffel, cuantas pulgadas son 6 centímetros o qué hay en tu agenda. Pero no es lo único, pero también puedes indicarle ciertas acciones o comandos a continuación te dejare una lista de estos comandos.

  • Ok Google Encender y apagar el Bluetooth.
  • Ok Google Encender o apagar la linterna
  • Ok Google Leer mensajes
  • Ok Google Reproducir música
  • Ok Google Llamar (contacto x)
  • Ok Google Enviar mensaje (contacto x)
  • Ok Google  Subir y bajar volumen
  • Ok Google Subir y bajar brillo
  • Ok Google Activar y desconectar Bluetooth
  • Ok Google Apagar pantalla del móvil (se necesita permisos root)

Entro muchos mas que puedes buscarlo por la red de san  google

 

Ahora empezaremos con la parte gráfica donde veremos como se muestra en la imagen que esta arriba, solo utilizaremos:

  • 1 textView
  • 2 Button

 

A continuación te dejo el código de la parte gráfica:

activity_main

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnOn"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="5dp"
        android:text="@string/on_String"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:layout_constraintLeft_creator="1"
        tools:layout_constraintRight_creator="1"
        tools:layout_constraintTop_creator="1" />


    <Button
        android:id="@+id/btnOff"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="7dp"
        android:text="@string/off_String"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnOn"
        tools:layout_constraintLeft_creator="1"
        tools:layout_constraintRight_creator="1" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="0dp"
        android:layout_height="79dp"
        android:layout_marginTop="8dp"
        android:text="@string/desc"
        app:layout_constraintTop_toBottomOf="@+id/btnOff"
        tools:layout_constraintRight_creator="1"
        app:layout_constraintRight_toRightOf="@+id/btnOff"
        tools:layout_constraintLeft_creator="1"
        app:layout_constraintLeft_toLeftOf="@+id/btnOff" />


</android.support.constraint.ConstraintLayout>

 

Ahora nos vamos a la parte del código en nuestro MainActivity:

 

MainActivity

 

public class MainActivity extends AppCompatActivity {

    Button on, off;

    //TODO run Broadcast reciever in terminateable background service
    BroadcastReceiver miVoz = new BroadcastReceiver() {
        // Cuando se ejecuta el evento, se llama al método onReceive
        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            Log.i("[BroadcastReceiver]", "MyReceiver");

            if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
                Log.i("[BroadcastReceiver]", "Pantalla ON");
                // código que se ejecuta después de que se enciende la pantalla
                try {
                    Process su = Runtime.getRuntime().exec("su");
                    DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());
                    outputStream.writeBytes("restablecimiento de la batería dumpsys \n");
                    outputStream.flush();
                    outputStream.writeBytes("salir\n");
                    outputStream.flush();
                    su.waitFor();
                } catch (IOException | InterruptedException e) {
                    e.printStackTrace();
                }
                // termina la pantalla en el código
            }
            else if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
                Log.i("[BroadcastReceiver]", "Pantalla OFF");
                // Código que se ejecuta después de que la pantalla se apaga
                try {
                    Process su = Runtime.getRuntime().exec("su");
                    DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());
                    outputStream.writeBytes("conjunto de batería dumpsys ac 1\n");
                    outputStream.flush();
                    outputStream.writeBytes("exit\n");
                    outputStream.flush();
                    su.waitFor();
                } catch (IOException | InterruptedException e) {
                    e.printStackTrace();
                }
            }

        }
    };
    // CÓDIGO DEL RECEPTOR FINAL DE TRANSMISIÓN PARA SER EJECUTADO EN SERVICIO

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        on = (Button)findViewById(R.id.btnOn);
        off = (Button) findViewById(R.id.btnOff);
        registerReceiver(miVoz, new IntentFilter(Intent.ACTION_SCREEN_ON));
        registerReceiver(miVoz, new IntentFilter(Intent.ACTION_SCREEN_OFF));
        try {
            Process su = Runtime.getRuntime().exec("su");
            Toast.makeText(getApplicationContext(), "Acceso root otorgado con éxito", Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(getApplicationContext(), "Acceso root no otorgado", Toast.LENGTH_SHORT).show();
            Toast.makeText(getApplicationContext(), "La aplicación requiere permisos de root, rootee el dispositivo y vuelva a intentarlo", Toast.LENGTH_LONG).show();
        }

        on.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "Ejecutado", Toast.LENGTH_SHORT).show();
                try {
                    Process su = Runtime.getRuntime().exec("su");
                    DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());
                    outputStream.writeBytes("dumpsys battery set ac 1\n");
                    outputStream.flush();
                    outputStream.writeBytes("exit\n");
                    outputStream.flush();
                    su.waitFor();
                    Log.i("[Estado de carga] "," habilitado manualmente a través del interruptor");
                } catch (IOException | InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });

        off.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "Executed", Toast.LENGTH_SHORT).show();
                try {
                    Process su = Runtime.getRuntime().exec("su");
                    DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());
                    outputStream.writeBytes("restablecimiento de la batería dumpsys\n");
                    outputStream.flush();
                    outputStream.writeBytes("exit\n");
                    outputStream.flush();
                    su.waitFor();
                    Log.i("[Estado de carga]", "Desactivado manualmente a través del interruptor");
                } catch (IOException | InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

En nuestro buil

build.gradle

compile 'com.android.support.constraint:constraint-layout:1.0.2'

Con eso hemos terminado, así que les voy dejar a continuación el enlace de descarga, pero recuerda. Copiar no es lo mismo que comparar.

Nota:

Si vas a descargar la aplicación de ejemplo, te sugiero que primero observes si tienes tu IDE actualizado, pues para este ejercicio nosotros utilizamos Android Studio 3.0.1.
Si usas una versión inferior tal vez tengas problemas al momento de ejecutarlo.

Descargar ordenar aplicación por voz.

También te puede interesar Como calcular la hipotenusa de un triangulo

3 comentarios en «como dar ordenes por voz a tu celular en android studio»

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

WhatsApp chat