Como adicionar cursores esquerdo/direito à barra de navegação durante a entrada de texto no Android O

Um tutorial sobre como mostrar os botões do cursor esquerdo/direito na barra de navegação no Android O, mas apenas quando um campo de entrada de texto está ativo.

Uma das adições de recursos mais antigas às ROMs personalizadas que ainda não foram lançadas oficialmente no Android é a capacidade de mover manualmente o cursor de entrada de texto. Dependendo da sua ROM, você pode mover o cursor de entrada de texto usando os botões de volume ou pressionando os botões virtuais na barra de navegação. Este recurso é essencial se você volta frequentemente para fazer correções ao digitar, mas sem uma ROM personalizada você não conseguirá aproveitá-lo.

No entanto, se você estiver executando o Visualização do desenvolvedor Android O que tem um novo personalizador da barra de navegação oculto em SystemUI Tuner, você pode adicionar cursores de teclado esquerdo/direito à sua barra de navegação. Tudo que você precisa fazer é definir a tecla esquerda da barra de navegação para KEYCODE_DPAD_LEFT (#21) e a tecla direita da barra de navegação para

KEYCODE_DPAD_RIGHT (#22). Quanto aos ícones, usar os ícones de seta esquerda/direita padrão faz mais sentido. Este método definitivamente funciona, como apontado por Polícia Android, mas é falho porque exige que essas chaves sejam colocadas permanentemente na barra de navegação.

Se você temestiveseguindo meu anteriortutoriais no personalizador da barra de navegação do Android O, você saberá que é possível alterar as duas teclas da barra de navegação com base nos critérios que desejarmos. Assim, para tornar nossos novos cursores de entrada de texto/teclado mais conscientes do contexto, podemos usar o Tasker para mostre os botões do cursor do teclado apenas enquanto a entrada de texto estiver sendo exibida no Android O. Forneceremos instruções passo a passo neste tutorial, mas você também pode pular para o final para baixar o perfil e importá-lo.

Obrigado a Eli Irvin por testar meu perfil Tasker e capturar esta gravação de tela!


Mostrar cursores esquerdo/direito na barra de navegação durante a entrada de texto

Requisitos:

  • Tasker ($2.99)
  • SecureTask
  • Entrada automática beta (~$1.70)

Tasker é necessário porque é o aplicativo de automação que estamos usando que, quando o AutoInput detecta um campo de texto, enviará comandos através do plug-in SecureTask para alterar nossa barra de navegação. Depois de instalar esses aplicativos, precisamos configurá-los.

Embora não haja uma maneira direta de detectar quando o teclado está sendo exibido, uma coisa que podemos monitorar é quando um campo de texto está em foco. Você saberá quando um campo de entrada de texto está em foco observando que um cursor piscante aparece em uma caixa de texto. Podemos monitorá-los usando a versão beta mais recente do AutoInput, que acaba de ser lançada, o que nos permite fazer isso. Para que o AutoInput monitore os campos de texto, precisamos habilitar seu Serviço de Acessibilidade.

Fazer isso é muito rápido, basta ir em Configurações -> Acessibilidade e procurar "AutoInput" na lista de Serviços. Habilite o serviço de acessibilidade.

Em seguida, precisamos conceder ao SecureTask a capacidade de modificar as configurações do sistema em nosso dispositivo. Para fazer isso, temos que conceder ao SecureTask uma permissão especial conhecida como WRITE_SECURE_SETTINGS que é normalmente inacessível para aplicativos regulares, mas pode ser concedido manualmente por um usuário através do uso do ADB. Portanto, você precisará ter o ADB instalado e funcionando em sua máquina para que isso funcione. Felizmente, conceder essa permissão ocorre apenas uma vez, então, se você planeja seguir qualquer um de nossos outros guias relacionados ao Android O, você precisará fazer isso eventualmente.

Configurando o ADB

A primeira coisa que você precisa fazer é baixar o binário ADB para o seu sistema operacional específico. Você pode fazer isso aqui. Depois de baixá-los, você precisa se certificar de que possui o motorista adequado se você estiver no Windows.

Depois de extrair o binário para uma pasta separada e instalar o driver, precisamos ativar a depuração USB no smartphone. Para fazer isso, abra Configurações e vá para Sobre o telefone. Toque no número da versão 7 vezes até aparecer uma caixa de diálogo informando que você desbloqueou as opções do desenvolvedor. Você pode acessar as opções do desenvolvedor em Configurações agora. Aparentemente, no Android O, você precisa inserir seu PIN/senha antes de abrir as Opções do desenvolvedor. Faça isso e procure Depuração USB e ative-a.

Agora conecte seu telefone e abra um prompt de comando no mesmo diretório onde você extraiu o binário ADB. (Usuários do Windows, segurem shift + clique com o botão direito nessa pasta e selecione “abrir prompt de comando aqui”.) Digite adb devices no prompt de comando. Você verá uma mensagem informando que o servidor ADB está sendo iniciado e, em seu telefone, verá um prompt solicitando que você conceda acesso ADB ao seu computador. Aceite isso. Agora quando você entra adb devices no prompt de comando, você deverá ver o número de série do seu dispositivo; se sim, você teve sucesso.

Concedendo WRITE_SECURE_SETTINGS ao SecureTask

Com um prompt de comando ADB aberto, digite o seguinte comando para conceder ao SecureTask a permissão necessária.

adbshellpmgrantcom.balda.securetaskandroid.permission.WRITE_SECURE_SETTINGS

SecureTask agora terá a capacidade de modificar as configurações do sistema sem acesso root! Agora estamos prontos para passar para Tasker.

Configurando o perfil Tasker

Abra o Tasker e crie um novo perfil pressionando o botão +. Diga Cursores de teclado e escolha o Evento Contexto. Vá para Plug-in -> AutoInput -> Ação da UI. Para os tipos de ação, selecione Elemento de entrada focadoFoco do elemento de entrada perdido. Deixe o Texto do Elemento em branco. Adicionar este Contexto AutoInput iniciará o serviço de monitoramento do AutoInput para detectar quando uma entrada de texto campo ganha ou perde foco e o armazena em uma variável como um valor booleano (verdadeiro/falso) que podemos ler.

Assim que terminar de criar o perfil, Tasker solicitará que você adicione uma tarefa. Escolha criar uma nova tarefa, mas não se preocupe em dar um nome a ela. Uma vez na tela de edição de tarefas, adicione as seguintes ações:

  1. A1: Tarefa -> Se. Defina como if %aifocus ~ true. Esta será a nossa condição para quando o AutoInput detectar que um campo de entrada de texto está em foco. As próximas duas ações definirão as teclas da barra de navegação para as teclas DPAD_LEFT e DPAD_RIGHT.
  2. A2: Plug-in -> SecureTask -> Configurações seguras. Ação: Escrever. Contexto: secure sysui_nav_bar_left. Valor: key(21:com.android/systemui/2131230907).
  3. A3: Plug-in -> SecureTask -> Configurações seguras. Ação: Escrever. Contexto: secure sysui_nav_bar_right. Valor: key(22:com.android/systemui/2131231004).
  4. A4: Tarefa -> Outro. É quando %aifocus é definido como falso, ou seja, o campo de entrada de texto perdeu o foco. Em seguida, limparemos as teclas da barra de navegação.
  5. A5: Plug-in -> SecureTask -> Configurações seguras. Ação: Escrever. Contexto: secure sysui_nav_bar_left. Valor: null.
  6. A6: Plug-in -> SecureTask -> Configurações seguras. Ação: Escrever. Contexto: secure sysui_nav_bar_right. Valor: null.
  7. A7: Tarefa -> Terminar se.

Você concluiu este script Tasker. Agora, sempre que o AutoInput detecta um campo de entrada de texto em foco (que se correlaciona com quando o teclado está mostrando), você verá duas novas teclas de cursor da barra de navegação que desaparecerão quando o campo de entrada de texto não estiver mais em foco.


Baixar e importar

Tal como acontece com todos os tutoriais relacionados ao Tasker, forneceremos o arquivo XML que você pode baixar e importar. Baixe o arquivo .prf.xml do AndroidFileHost abaixo e salve-o em seu armazenamento interno. Abra o Tasker e mantenha pressionado a guia Perfis na parte superior até ver um botão Importar. Toque nele e procure o arquivo XML que você acabou de salvar e selecione-o para importá-lo. Certifique-se de ter o serviço de acessibilidade do AutoInput ativado e de ter concedido o WRITE_SECURE_SETTINGS para SecureTask conforme mencionado em meu artigo, caso contrário, este perfil não funcionará qualquer coisa no seu telefone!

Baixe o perfil "Cursores de teclado" em AndroidFileHost

Se você está se perguntando quais outras teclas úteis podemos adicionar à barra de navegação para tornar o Android O uma experiência mais agradável, mostraremos uma configuração alternativa em um tutorial futuro.