saber quitar pin patron olvide olvidada nada desbloquear contraseña con como celular borrar bloqueo bloqueado aplicaciones java android serial-port

java - pin - como quitar bloqueo de aplicaciones huawei



¿Anular la eliminación de la clave en Android? (4)

Principalmente solucioné el problema con estas líneas en dispatchKeyEvent:

byte[] cmdLeft = { (byte) 27, (byte) ''['', (byte) ''D'' }; byte[] cmdErase = { (byte) 27, (byte) ''['', (byte) ''P'' }; mSession.appendToEmulator(cmdLeft, 0, cmdLeft.length); mSession.appendToEmulator(cmdErase, 0, cmdErase.length);

El único problema ahora es que si selecciono EditText y presiono eliminar, se borrará un carácter pero dos aparecerán en la pantalla. así que si escribo habilitar y presiono eliminar, cambiará a enab, pero lo que realmente se enviará es enabl

Sobrepasé dispatchKeyEvent, y funciona. Si se selecciona editText, el terminal borra los caracteres sobre el serial ahora, por lo que es un buen paso. Sin embargo, sigue existiendo el problema principal de que si el terminal se selecciona a sí mismo, se escriben pequeñas casillas extrañas en la pantalla en lugar de eliminar un carácter. Bueno, uno está escrito, y si continúo presionando borrar permanece en ese cuadro, pero la próxima vez que escriba la cantidad de borrados que presioné aparece como cuadros. Es muy extraño ...

Es como si hubiera sido anulado para el texto de edición y no para el terminal.

Cajitas extrañas en todo su esplendor:

public boolean dispatchKeyEvent(KeyEvent event) { if (event != null && event.getAction() == KeyEvent.ACTION_UP) { return false; } if (event.getKeyCode() == KeyEvent.KEYCODE_DEL) { try { sendOverSerial("/b".getBytes("UTF-8")); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return super.dispatchKeyEvent(event); };

Me estoy conectando a un emulador de terminal usando una biblioteca en Android, esto se conecta a un dispositivo en serie (un interruptor) y me muestra datos enviados / recibidos. Envío datos a través de la conexión a través de un cuadro de texto debajo del terminal o escribiendo en el terminal mismo y pulsando enter en el teclado en ambos casos. Solo se usará un teclado suave. Si envío una cadena incorrecta, estoy en un estado irrecuperable debido a que no tengo una implementación de clave de eliminación. Retroceso en mi edición El texto funciona bien, solo quiero que funcione cuando la terminal esté resaltada y estoy escribiendo eso.

Por el momento, si presiono eliminar aparece un pequeño carácter de cuadro extraño y no sucede nada más, recibo una excepción en el registro algunas veces ( http://i.imgur.com/wMRaLPX.png ). Lo que quiero saber es cómo cambiar la funcionalidad de las teclas de borrar para que cuando lo presione pueda enviar un carácter de eliminación como este pero también conserve la capacidad de eliminar caracteres en el cuadro de texto de edición, etc.

sendOverSerial("/b".getBytes("UTF-8"))

Esto envía un espacio trasero correcto, solo necesito incorporarlo.

Pero el teclado suave no parece registrar las pulsaciones de tecla? sigo recibiendo un código clave de 0 y solo funcionará.

Actualmente estoy probando https://stackoverflow.com/questions/4...62035_11377462 , pero cualquier otra sugerencia sería genial, ya que unas 10 sugerencias no han funcionado hasta el momento. Mi espacio de retroceso no estaría asociado con un editText, sino una vista de terminal. Ni siquiera puedo detectar la tecla de borrar presionada.


No tengo ninguna experiencia con Android, y también admitiré que nunca he intentado implementar un enlace de tecla borrar / retroceder. Sin embargo, si estuviera tratando de hacer esto, y no conocía una buena implementación estándar, puedo pensar en una solución que probablemente funcionaría bien. Haga una combinación de teclas para eliminar con un agente de escucha asociado. Haga que el oyente de acción getText () salga de su campo de texto y guárdelo como una Cadena. Subcadena esa cadena para incluir todo excepto el último carácter. Luego use setText () para el campo de texto con la nueva cadena. Una forma manual de hacerlo, pero definitivamente funcionaría.


Parece que el control de terminal que está utilizando debe consumir KEYCODE_DEL en lugar de dejar que se propague a la ventana y debe enviar un carácter diferente al extremo remoto en lugar de / b. Entonces, cuando su texto de edición está enfocado, su despachoKeyEvent está manejando la prensa, pero no lo ve cuando el terminal tiene foco. ¿Has confirmado que el manejador par está disparando a través de un depurador cuando el terminal tiene foco? No dijiste qué biblioteca estás usando para la terminal, pero la veré y veré si puedes configurar un manejador de teclas o algo así.


La solución fue mover el método que escribió a la pantalla a otra clase, luego todo funcionó bien.


Recomiendo capturar la cadena completa y enviarla de una vez, cuando el usuario presiona Enviar , como un programa de chat.