
Hola Habr! Quiero llamar su atención sobre un poco de magia para los relojes en Wear OS.
Hace algún tiempo,
poco antes del lanzamiento de Android 9.0, se introdujo una nueva
API pública que le permite usar dispositivos Android como dispositivos de entrada Bluetooth (mouse, teclado, gamepad, etc.), y ahora creé una aplicación simple que demuestra Una forma de usar esta API. (Spoiler: esto funciona no solo en el noveno androide).
Ya podría adivinar por el nombre lo que hace esta aplicación: de hecho, es un mouse aéreo común compatible con cualquier dispositivo en Windows, OSX, Linux (incluido Raspbian), Chrome OS, Android (incluido Android TV), siempre que haya un receptor Bluetooth; No se requieren privilegios de root ni una aplicación de "servidor".
Es suficiente para iniciar la aplicación, emparejamiento a través de Bluetooth, y puede:
- Use el reloj como un puntero intuitivo para presentaciones (así como para cambiar diapositivas con las teclas del cursor);
- Juegue Fruit Ninja, agitando los brazos (por ejemplo, instalando el juego en Android TV desde una unidad flash USB o en un Chromebook desde Play Store), vea la demostración a continuación;
- Administrar HTPC mientras está acostado en el sofá;
- Use el reloj como controlador VR en algunos juegos para Cardboard (sin embargo, no para Daydream: tiene su propio control remoto);
- Muestra tus habilidades telequinéticas a tus amigos; :)
- Administrar un teléfono conectado a través de Samsung Dex;
Puede imaginarse cómo se ve en este video (demostración de un prototipo temprano de finales de 2015):
Como usarlo
La aplicación tiene cuatro modos: mouse aéreo, panel táctil, teclas de flecha e ingreso de texto.
El modo de mouse aéreo es bastante evidente. Tiene dos botones en pantalla para hacer clic con el botón izquierdo y derecho, un obturador en la parte superior para cambiar el modo de seguimiento del movimiento dependiendo de la mano en la que esté encendido el reloj (también hay un modo en el que puede sostener el reloj en la mano como un puntero láser) y un obturador desde la parte inferior para funciones adicionales: mantener presionado (también conocido como "modo Fruit Ninja") y hacer clic con el botón central. Si su reloj tiene una corona giratoria, puede usarla para desplazarse. El cursor del mouse debe apuntar hacia la pantalla que está controlando.
El modo de panel táctil admite todos los gestos habituales: mueva el puntero, haga clic, haga doble clic, mantenga presionado, toque con dos dedos para hacer clic derecho, desplácese con dos dedos. Para salir de este modo, puede cubrir la pantalla con la palma de su mano o presionar un botón adicional en el reloj (si el reloj tiene más de un botón).
El modo de tecla de cursor es bastante simple: toque los bordes de la pantalla, presione las teclas correspondientes, toque dos veces en el centro, presione Enter, se usa una presión larga en el centro para salir, además hay deslizamientos desde el centro para Escape, Retroceso, espacio y Tabulador.

Finalmente, en
el modo de entrada de texto, puede usar el teclado en pantalla o la entrada de voz. Cabe señalar que el texto ingresado en el dispositivo conectado depende de la distribución del teclado. Desafortunadamente, hasta ahora solo se admite el diseño en inglés (se podría agregar más, pero esto requeriría cambiarlo manualmente tanto en la aplicación como en el dispositivo conectado).
Si su reloj tiene más de un botón, el segundo se puede usar para cambiar rápidamente entre los modos de entrada y el tercero se puede usar para activar rápidamente el modo de entrada de texto.
También hay algunas configuraciones. Puede estabilizar los movimientos del cursor (esto suavizará los movimientos pequeños como dar la mano), habilitar las direcciones diagonales para las teclas del cursor (esto es útil en esos mismos juegos para Cardboard) o reducir la frecuencia de transferencia de datos (lo que puede ayudar al usar la aplicación con algunas consolas de TV Android antiguas en séptimo androide cuando el cursor del mouse no se mantiene al día con los movimientos de la mano).
Un poco sobre compatibilidad
Como mencioné anteriormente, la API se ha hecho pública en Android 9.0, sin embargo, la aplicación también funcionará en cualquier reloj con Android 8.0. Es decir, si, cuando se reinicia el reloj, después de saltar puntos de color, aparece una "W" grande de color y aparece "Wear OS by Google" en lugar de "Android Wear", entonces todo debería funcionar. La API en sí apareció en Android Oreo, y era ligeramente diferente (y también oculta), pero antes de Android Pie solo estaba habilitada en el reloj. Por cierto, hay una manera de habilitarlo en teléfonos con ocho, pero esto requiere derechos de root (en los nueve todo funcionará de esta manera).
Posibles problemas y soluciones
Si, cuando está conectado, el cursor del mouse se mueve bruscamente, aproximadamente una vez por segundo, intente activar y desactivar el modo avión y luego volver a conectarlo. Parece que hay un error de administración de energía flotante en la pila de Bluetooth ...
Para ajustar la sensibilidad, vaya a la configuración del dispositivo conectado, no a la aplicación.
Al usar la aplicación con un dispositivo conectado al televisor, vale la pena cambiar el televisor al modo "juego". Esto debería deshabilitar el procesamiento posterior, lo que causa retrasos
muy grandes en los televisores modernos.
También tiene sentido desactivar el control de gestos en la configuración del reloj cuando se utiliza el modo de mouse aéreo, de lo contrario es muy probable que realice accidentalmente un gesto de "retroceso" o "inicio".
Descargar enlaces
Play Store (no intente abrir este enlace desde su teléfono, reciba el mensaje "el dispositivo no es compatible"; abra el enlace en la computadora o busque la aplicación en Play Store en el reloj).
Código fuente (casi todos, excepto el soporte de Oreo).