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

Um tutorial sobre como adicionar cursores de teclado esquerdo/direito à barra de navegação durante a entrada de texto usando Tasker e barra de navegação personalizada. Não é necessário root, Android 7.0+.

Personalizar a barra de navegação tem sido um elemento básico das ROMs personalizadas desde que o Google introduziu o Galáxia Nexus com Android 4.0 Ice Cream Sandwich (não falamos sobre o Motorola Xoom e Honeycomb por aqui). Embora alguns OEMs ofereçam algum tipo de personalização de chave de software em seus telefones, é apenas com o primeira prévia do desenvolvedor Android O que o Google está incluindo oficialmente personalização da barra de navegação. No entanto, os usuários dos nossos fóruns descobriram que o sintonizador da barra de navegação do Google era, na verdade, escondido no AOSP desde o Android Nougat, mas foi só esta semana que descobrimos que esse sintonizador de barra de navegação oculto poderia ser acessado por meio de comandos shell sem precisar de root, ROMs personalizados ou mods de UI do sistema

. Agora é possível implementar recursos populares de ROM personalizados, como adicionar cursores de teclado à barra de navegação?

Pode apostar, já que esta revelação abriu as comportas para a personalização sem raízes da barra de navegação, e na vanguarda está o XDA Senior Member paphonb que desenvolveu um aplicativo chamado Barra de navegação personalizada para ajudar os usuários a modificar a barra de navegação sem precisar executar comandos shell. Seu aplicativo é bastante repleto de recursos; por exemplo, fornece um Tasker plugin para que você possa alterar contextualmente a barra de navegação. Como muitos usuários não estão familiarizados com o Tasker, estou escrevendo estes tutoriais para ajudar os usuários a aproveitar as vantagens da personalização da barra de navegação.

Neste tutorial, vou mostrar como adicione cursores de teclado esquerdo/direito à barra de navegação enquanto o teclado está sendo exibido (Android 7.0+, sem necessidade de root!) Este tutorial é semelhante ao que escrevi para Usuários do Android O, mas este tutorial será muito mais acessível, pois funciona no Android Nougat.

Sim, sim, sabemos que Swiftkey e Gboard, entre outros, possuem cursores de teclado integrados ao teclado. Porém, nem todo teclado o faz e, na minha opinião, é mais conveniente usar os botões da barra de navegação do que os botões da barra de navegação. Swiftkey (que ocupam espaço) ou aqueles no Gboard (que exigem movimentos imprecisos na barra de espaço ou mudança para um especial modo).


Leitura Recomendada 1: Como alterar os ícones da barra de navegação ou reorganizar os botões sem Root

Leitura recomendada 2: Como adicionar controles de reprodução de mídia à barra de navegação ao reproduzir música


Adicione cursores de teclado esquerdo/direito à barra de navegação durante a entrada de texto

Requisitos

Sistema Requisitos: você precisará de um dispositivo Android 7.0+ compatível com o personalizador da barra de navegação AOSP. Sabe-se que Google Nexus, Pixel e alguns telefones Sony/HTC funcionam. A maioria dos dispositivos que estão próximos do Android padrão provavelmente não removeram o personalizador da barra de navegação AOSP e devem funcionar. Isso significa que provavelmente não funcionará em seu dispositivo LG, Samsung ou Huawei/Honor padrão. Consulte a seção "compatibilidade" na primeira postagem deste tópico. (Observação: o OEM do seu dispositivo pode não estar listado nesse tópico. A única maneira de saber com certeza se o seu dispositivo é compatível é experimentar o aplicativo, o que mostraremos a seguir.)

Requisitos do aplicativo:

  • Barra de navegação personalizada (Grátis para 2 perfis)
  • Tasker ($2.99)
  • Entrada automática beta (v2.0.5b.bf) (~$1,70)

A razão pela qual precisamos da Barra de Navegação Personalizada é óbvia - este aplicativo é o que nos permitirá modificar a barra de navegação para exibir essas teclas de reprodução de mídia. (Tecnicamente, não precisamos deste aplicativo para essas modificações, pois podemos usar comandos shell ou outros plug-ins do Tasker, mas para facilitar as coisas para nossos usuários, mostraremos como configurar isso usando este aplicativo maravilhoso.) AutoInput Beta é um plugin Tasker que nos ajudará a detectar quando o teclado está mostrando (tecnicamente, o plug-in detectará quando uma caixa de entrada de texto estiver sendo exibida, em vez do teclado em si, mas isso é o mais próximo que podemos pegar). Finalmente, Tasker preenche a lacuna entre o AutoInput Beta e a barra de navegação personalizada.

Configuração: barra de navegação personalizada

A primeira coisa que precisamos fazer é ter certeza de que é possível modificar a barra de navegação do seu dispositivo. Se o seu dispositivo for um dos listados como compatíveis no Tópico da barra de navegação personalizada, então é provável que seja. Podemos verificar executando o breve tutorial que acompanha este aplicativo.

instale o aplicativo da Google Play Store, abra o aplicativo e prossiga pelas telas introdutórias. A barra de navegação personalizada solicitará que você conceda uma determinada permissão chamada WRITE_SECURE_SETTINGS para continuar usando o aplicativo. Existem duas maneiras de fazer isso, conforme indicado no aplicativo.

  1. Se você tiver um dispositivo com acesso root, a barra de navegação personalizada solicitará acesso de superusuário. Conceda-o e o aplicativo concederá automaticamente essa permissão.
  2. Se o seu dispositivo não estiver enraizado, você precisará conceder a permissão por meio do ADB. Abra um prompt de comando/terminal em sua máquina e digite o seguinte comando: adb shell pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS

Depois de conceder essa permissão ao aplicativo por meio de um dos dois métodos acima, o aplicativo prosseguirá com um teste de compatibilidade. Se a sua barra de navegação não mudar, infelizmente você está sem sorte. Se a sua barra de navegação mudar para exibir um botão de seta para a direita, parabéns, seu dispositivo é compatível! Agora podemos modificar nossa barra de navegação.

Configuração: AutoInput Beta

Para que o AutoInput Beta detecte quando uma caixa de entrada de texto está sendo exibida, precisamos habilitar seu Serviço de Acessibilidade. Basta ir em Configurações -> Acessibilidade (dependendo do seu dispositivo, pode estar em outro submenu) e encontrar AutoInput na lista de Serviços. Toque nele e depois no botão de alternância para ativar o Serviço de Acessibilidade.


Tutorial

Depois de confirmar que a barra de navegação personalizada é compatível com o seu dispositivo e que o serviço de acessibilidade está habilitado para AutoInput Beta, é hora de configurar tudo isso. A primeira coisa que precisamos fazer é criar um novo perfil na Barra de Navegação Personalizada que, quando habilitado, adicionará a tecla esquerda/direita à nossa barra de navegação. Aqui estão as instruções passo a passo:

  1. Abra o aplicativo Barra de navegação personalizada e toque em Perfis na seção Automação.
  2. Toque no + ícone no canto superior direito para adicionar um novo perfil.
  3. Toque no perfil que acabou de ser criado.
  4. Na seção Perfil, toque em Nome e nomeie este perfil Cursores de teclado.
  5. Em "Botão extra esquerdo", toque em Tipo. Defina o tipo como Código chave.
  6. Deve haver duas novas opções em “Botão extra esquerdo” chamadas Keycode e Icon. Toque em Código chave.
  7. Role para baixo e selecione Dpad Esquerdo.
  8. Agora toque em Ícone na seção "Botão extra esquerdo".
  9. Selecione os divisa esquerda ícone.
  10. Repita as etapas 5 a 9 para o "botão extra direito". No entanto, defina o código-chave para Dpad direito e defina o ícone para divisa à direita.
  11. Faça backup na seção Perfil, toque em Habilitado para testar este perfil. Se você vir setas para a esquerda e para a direita aparecendo na barra de navegação, isso está funcionando corretamente.

Agora que configuramos o perfil da barra de navegação personalizada, estamos prontos para configurar nosso perfil Tasker, que ativará/desativará esse perfil quando a entrada de texto for detectada/desaparecer. Tudo isso será feito em um único Perfil. Aqui estão as instruções:

  1. Abra o Tasker e crie um novo perfil tocando no + ícone no canto inferior direito.
  2. Selecione os Evento contexto.
  3. Escolher Plug-in -> AutoInput -> Ação da UI. Toque no ícone de lápis para abrir a configuração do AutoInput.
  4. Uma vez na configuração da ação da interface do usuário do AutoInput, toque em Tipos de ação. Selecione Elemento de entrada focado e Foco do elemento de entrada perdido. Ignore a seção Texto do Elemento. Toque no ícone da marca de seleção no topo quando terminar.
  5. Volte para a tela principal do Tasker e o Tasker solicitará que você anexe uma tarefa a este perfil. Escolha criar uma nova tarefa. Não se preocupe em nomear a tarefa.
  6. Adicione uma ação a esta tarefa tocando no + ícone na parte inferior central.
  7. Vá para Tarefa -> Se. Defina-o para Se %aifocus ~ verdadeiro. O ~ é "correspondências".
  8. Para a segunda ação, vá para Plug-in -> Barra de navegação personalizada. Clique no ícone de lápis para abrir a configuração. Para a Ação selecione Habilitar perfil. Em Selecionar perfil, escolha o Cursores de teclado perfil que fizemos anteriormente.
  9. Para a terceira ação, vá para Tarefa -> Outro.
  10. Para a quarta ação, vá para Plug-in -> Barra de navegação personalizada. Clique no ícone de lápis para abrir a configuração. Para a Ação selecione Desativar perfil. Em Selecionar perfil, escolha o Cursores de teclado perfil mais uma vez.
  11. Para a última ação, vá para Tarefa -> Finalizar se.
  12. Pressione voltar e saia da tela de edição de tarefas.

Depois de concluir todas as etapas acima, estamos prontos! Vá em frente e experimente abrindo qualquer caixa de entrada de texto e vendo se sua barra de navegação muda para incluir os cursores do teclado esquerdo/direito. Se não estiver funcionando, verifique se o serviço de acessibilidade do AutoInput está ativado.


Usando comandos Shell

Dada a facilidade de uso do XDA Senior Member paphonbde Barra de navegação personalizada aplicativo, realmente não vejo necessidade de fornecer instruções detalhadas passo a passo sobre como fazer isso com outros plug-ins Tasker, como SecureTask ou Ferramentas automáticas (ou a função run shell no Tasker). No entanto, certamente é possível, e pelo menos fornecerei um resumo dos comandos necessários para replicar esta configuração sem o uso do aplicativo do paphonb.

A primeira coisa que você precisa fazer é instalar o SecureTask ou o AutoTools. Você precisará conceder a permissão WRITE_SECURE_SETTINGS a qualquer aplicativo escolhido para controlar o sintonizador da barra de navegação.

Para SecureTask:

adbshellpmgrantcom.balda.securetaskandroid.permission.WRITE_SECURE_SETTINGS

Para AutoTools:

adbshellpmgrantcom.joaomgcd.autotoolsandroid.permission.WRITE_SECURE_SETTINGS

Em seguida, você precisará baixar os ícones que usará para as teclas anterior/seguinte. Você precisará dos ícones no formato PNG e, quanto ao tamanho, poderá determinar o tamanho dos ícones necessários consultando seu métricas de densidade de exibição do dispositivo no Material.io e correlacionando isso com um gráfico de referência de tamanho de ícone. IconsDB.com é um bom recurso para ícones gratuitos. Salve os ícones que você usará como left.png e right.png em uma pasta chamada /NavIcons no diretório raiz do seu armazenamento.

Finalmente, você inserirá este comando para mostrar os botões de controle de mídia:

settings put secure sysui_nav_bar "key(21:file:///storage/emulated/0/NavIcons/left.png),back; home; recent, key(22:file:///storage/emulated/0/NavIcons/right.png)"

onde a chave nº 21 se refere a KEYCODE_DPAD_LEFT e a chave nº 22 refere-se a KEYCODE_DPAD_RIGHT.

Em seguida, para reverter as teclas da barra de navegação para o layout padrão (ou seja, o foco de entrada de texto foi perdido), digite este comando:

settings put secure sysui_nav_bar "space, back; home; recent, menu_ime"

Em essência, a configuração do perfil Tasker será exatamente igual à configuração acima, exceto que no lugar das duas ações Tasker da barra de navegação personalizada, você usará SecureTask/AutoTools/Run Shell. Observe que, a menos que você esteja enraizado e usando a ação “executar shell” no Tasker, o processo para colocar esses comandos no SecureTask ou AutoTools é por sua conta. Na verdade, não é tão difícil de fazer, mas muitos usuários acham mais fácil usar apenas o aplicativo do paphonb, então não entrarei em mais detalhes aqui.


Conclusão

É isso neste tutorial. Ocasionalmente, postarei tutoriais futuros quando encontrar usos mais práticos para alterar sua barra de navegação, especialmente de maneira contextual usando um aplicativo de automação como o Tasker. Se você tem alguma ideia inteligente, mas não sabe como implementá-la sozinho, envie-nos uma mensagem usando nosso Formulário de gorjeta ou envie-nos um e-mail diretamente e faremos o possível para descobrir!

Por favor, apoie o XDA-Developers de todas as maneiras que puder! Recentemente descobrimos que existiam vários blogs recortando, copiando, colando nossos tutoriais originais e outros conteúdos compartilhados por nossos usuários nos fóruns. Esses blogs têm tentado receber o crédito pelo enorme esforço que fazemos na compilação desses tutoriais, em vez de fornecer conteúdo de qualidade por conta própria. Você não encontrará tutoriais como os que escrevemos em nosso categoria de tutoriais ou tutoriais de nossos fóruns em qualquer outro lugar.

Siga-nos no Twitter, Google+, Facebook, ou YouTube. Confira nosso Laboratórios XDA app para uma maneira rápida de navegar em nossos fóruns (e considere obter XDA sem anúncios também!) no seu dispositivo móvel e confira nosso lançamento recente Feed XDA app se você possui um OnePlus 3 ou OnePlus 3T! Obrigado e fique ligado em nosso próximo tutorial!