WearMouse, um mouse aéreo para relógios Wear OS

Olá Habr! Quero chamar sua atenção um pouco de mágica para relógios no Wear OS.

Algum tempo atrás, pouco antes do lançamento do Android 9.0, foi introduzida uma nova API pública que permite usar dispositivos Android como dispositivos de entrada Bluetooth (mouse, teclado, gamepad etc.) e agora criei um aplicativo simples que demonstra Uma maneira de usar essa API. (Spoiler: isso funciona não apenas no nono android.)

Você já pode adivinhar pelo nome o que esse aplicativo faz: na verdade, é um mouse aéreo comum compatível com qualquer dispositivo no Windows, OSX, Linux (incluindo Raspbian), Chrome OS, Android (incluindo Android TV), desde que haja um receptor Bluetooth; Não são necessários privilégios de root nem um aplicativo "servidor".

Basta iniciar o aplicativo, emparelhar via Bluetooth, e você pode:

  • Use o relógio como um ponteiro intuitivo para apresentações (assim como alternar slides com as teclas do cursor);
  • Jogue Fruit Ninja, agitando os braços (por exemplo, instalando o jogo na Android TV a partir de uma unidade flash USB ou em um Chromebook na Play Store), veja a demonstração abaixo;
  • Gerencie HTPC enquanto está deitado no sofá;
  • Use o relógio como um controlador VR em alguns jogos para o Cardboard (no entanto, não para o Daydream: ele possui seu próprio controle remoto);
  • Mostre suas habilidades telecinéticas aos amigos; :)
  • Gerenciar um telefone conectado via Samsung Dex;

Você pode imaginar aproximadamente como fica neste vídeo (demonstração de um protótipo inicial do final de 2015):



Como usá-lo


O aplicativo possui quatro modos: mouse aéreo, touchpad, teclas de seta e entrada de texto.

O modo de mouse aéreo é bastante evidente. Ele possui dois botões na tela para clicar com o botão esquerdo e direito, um obturador na parte superior para alternar o modo de rastreamento de movimento, dependendo do ponteiro do relógio (também existe um modo no qual você pode segurar o relógio na mão como um ponteiro laser) e um obturador na parte inferior para funções adicionais: clique e mantenha pressionado (também conhecido como "modo Fruit Ninja") e clique com o botão do meio. Se o seu relógio tiver uma coroa giratória, você pode usá-lo para rolar. O cursor do mouse deve apontar para a tela que você está controlando.

O modo touchpad suporta todos os gestos usuais: mova o ponteiro, clique, clique duas vezes, toque com segure, toque com dois dedos para clicar com o botão direito, role com dois dedos. Para sair desse modo, você pode cobrir a tela com a palma da mão ou pressionar um botão adicional no relógio (se o relógio tiver mais de um botão).

O modo da tecla do cursor é bastante simples: toque nas bordas da tela e pressione as teclas correspondentes, toque duas vezes no centro e pressione Enter; uma pressão longa no centro é usada para sair, além de deslizar o centro para Escape, Backspace, espaço e Tab.

Finalmente, no modo de entrada de texto, você pode usar o teclado na tela ou a entrada de voz. Observe que o texto digitado no dispositivo conectado depende do layout do teclado. Infelizmente, até agora apenas o layout em inglês é suportado (é possível adicionar mais, mas isso exigiria alterná-lo manualmente, tanto no aplicativo quanto no dispositivo conectado).

Se o seu relógio tiver mais de um botão, o segundo poderá ser usado para alternar rapidamente entre os modos de entrada e o terceiro para chamar rapidamente o modo de entrada de texto.

Existem também algumas configurações. Você pode estabilizar os movimentos do cursor (isso suaviza pequenos movimentos, como apertar as mãos), ativar as direções diagonais das teclas do cursor (isso é útil nos mesmos jogos do Cardboard) ou reduzir a frequência da transferência de dados (o que pode ajudar ao usar o aplicativo com alguns consoles antigos da Android TV em sétimo andróide quando o cursor do mouse não acompanha os movimentos das mãos).

Um pouco sobre compatibilidade


Como mencionei acima, a API tornou-se pública no Android 9.0, no entanto, o aplicativo também funcionará em qualquer relógio com o Android 8.0. Ou seja, se, quando o relógio for reiniciado, após saltar pontos coloridos, um "W" colorido grande e "Wear OS do Google" aparecerem em vez de "Android Wear", tudo funcionará. A API em si apareceu no Android Oreo e era um pouco diferente (e também oculta), mas antes do Android Pie era ativada apenas no relógio. A propósito, existe uma maneira de habilitá-lo em telefones com oito, mas isso requer direitos de root (nos nove, tudo funcionará dessa maneira).

Possíveis problemas e soluções


Se, quando conectado, o cursor do mouse se mover rapidamente, aproximadamente uma vez por segundo, tente ativar e desativar o modo avião e reconectar. Parece que há um erro de gerenciamento de energia flutuante na pilha Bluetooth ...

Para ajustar a sensibilidade, vá para as configurações do dispositivo conectado, não para o aplicativo.

Ao usar o aplicativo com um dispositivo conectado à TV, vale a pena alternar a TV para o modo "jogo". Isso deve desativar o pós-processamento, o que causa atrasos muito grandes nas TVs modernas.

Também faz sentido desativar o controle de gestos nas configurações do relógio ao usar o modo de mouse aéreo, caso contrário, existe uma alta probabilidade de executar acidentalmente um gesto para trás ou para casa.

Links para Download


Play Store (não tente abrir este link no seu telefone, receba a mensagem "o dispositivo não é compatível"; abra o link no computador ou encontre o aplicativo na Play Store no próprio relógio).

Código fonte (quase todos, exceto o suporte do Oreo).

Source: https://habr.com/ru/post/pt440802/


All Articles