Utilizar KeyEvent en android

Hola amigos, hoy veremos como usar KeyEvent en android, no sabes que es un keyEvent?. Tranquilo que te lo explico, Si observamos es la unión de dos palabras en ingles Key-Event si quisiéramos traducirlos al español seria algo como “evento clave”. Entonces podemos deducir que se refiere a las acciones que pueden producirse al presionar algo, para ser mas exacto , seria al presionar una parte del hardware del móvil como es el caso de las teclas de volumen, apagar, encender y también a los dispositivos que se conecta a nuestro móvil como es el caso de Hands Free o manos libre(audífonos) o como lo conozcas en tu país.

Entonces continuando con nuestro curso de programación, para este tutorial vamos hacer que al momento de presionar el botón del volumen (subir volumen) nos muestre un mensaje de texto y al momento de hacer clic en nuestro Hands Free nos muestre un mensaje flotante que lo implementaremos como un toast.

 

 

Como Utilizar KeyEvent en android

utilizar eventkey

Antes de empezar quiero que quede claro la forma de utilizar los keyevent en android, la estructura es la siguiente:

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.Aqui va el nombre del keyevent){
        //Aqui va mi codigo si presiono el keyevent
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

Si observas el codigo arriba veras como resalte una linea, en esa linea tu debes de llamar a la key que activara el evento o acción, como sabrás cada evento tiene un  nombre te dejo a continuación la lista de cada uno de ellos, puedes revisar la fuente en ingles aquí.

 

Ahora si empezamos con el ejercicio, para este ejercicio utilizare dos tipos de eventos, la primera activara un mensaje de texto al presionar la tecla de subir el volumen y la segundda KeyEvent se activara cuando presiones en boton de tu Hands Free.

Primero crearemos una nueva aplicación y en ella solo insertaremos un Textview

 

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="com.androfast.server.appeventokey.MainActivity">

    <TextView
        android:id="@+id/txtHandsFree"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.464"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.25" />

</android.support.constraint.ConstraintLayout>

 

Ahora te dejare la parte del código, donde podrás ver que ingrese dos keyevent con sus respectivos if para hacer referencia de que al presionar uno u otro evento estos se deberán activar.

MainActivity

 

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    TextView handsFree;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        handsFree=(TextView)findViewById(R.id.txtHandsFree);

    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_HEADSETHOOK){
            handsFree.setText("Manos Libres");
            return true;
        }if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){
           iniciarToast();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    public void iniciarToast(){
        Toast.makeText(MainActivity.this, "Tecla Volumen",Toast.LENGTH_LONG).show();
    }


}

Si observas detenidamente al codigo de arriba veras en la linea 20 y 23 que llamo a dos keyevent donde:

KEYCODE_HEADSETHOOK = presionar Hands Free

KEYCODE_VOLUME_UP = presionar la tecla de subir el volumen

También si observas en el primer keyevent simplemente asigno aun textview un mensaje, pero en el segundo keyevent puedes apreciar que llamo a un método “iniciarToast” que este a su vez se encuentra al final y lo único que hace es mostrarnos un mensaje emergente con un Toast.

Creo que ha quedado super claro, igual si tienes dudas como de costumbre puedes escribirme en los comentarios, de todas formas te dejo el enlace de descarga de este ejercicio.

 

 

 

0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *