Graças a uma nova permissão implementada no Android Oreo, os aplicativos do sistema agora são capazes de configurar ouvintes para detectar toques longos nas teclas de volume.
Adicionar funcionalidades adicionais a vários botões de hardware e software em nossos dispositivos é algo que os entusiastas do Android já fazem há algum tempo. A maioria das pessoas conhece aplicativos como Mapeador de botões do desenvolvedor reconhecido XDA flar2, e até falamos sobre outras soluções de remapeador quando o Galaxy S8 foi lançado. Embora essas soluções tenham lidado com essas ações de uma certa maneira, o Google parece estar implementando um ouvinte no Android Oreo para manter pressionadas as teclas de volume. Isso significa que, potencialmente, os aplicativos no futuro poderão reagir a pressionamentos longos das teclas de volume, mesmo quando a tela está desativado, o que pode ser usado para trazer um recurso frequentemente solicitado de ROMs personalizados - controle de faixa de música com tecla de volume prensas.
Queremos mencionar isso este recurso na verdade, não está habilitado na versão voltada para o usuário que temos disponível no momento. Porém, o suporte para ele existe, conforme evidenciado pelo commit que encontramos, e isso significa que ele pode ser habilitado pelo OEM para o seu dispositivo específico. Conforme mencionado, os aplicativos de remapeamento tradicionais funcionam detectando se um KeyEvent foi enviado (com toques longos, esses aplicativos medem o tempo entre um evento de tecla pressionada e tecla para cima, enquanto que com pressionamentos duplos eles medem o tempo entre pressionamentos para baixo), mas esses KeyEvents são enviados apenas enquanto a tela está sobre. Além disso, normalmente também exigem o uso de um serviço de acessibilidade que pode prejudicar o desempenho.
Sua solução típica de remapeamento de botão pode ser considerada uma solução alternativa para ativar ou desativar a tocha, abrir um aplicativo, abrir o painel de notificação e assim por diante. No entanto, o que o Google implementou no Android Oreo vai um passo além, permitindo que os próprios aplicativos do sistema configurem esses ouvintes de pressionamento longo do botão de volume. Isso pode permitir que o usuário acione algo dentro do próprio aplicativo assim que a plataforma detectar que um botão de volume foi pressionado por alguns segundos.
Da forma como o Google incluiu suporte para isso no Android Oreo, isso só funcionará para aplicativos “privilegiados” (também conhecidos como sistema pré-instalado) prontos para uso. O OEM só precisa permitir que o aplicativo privilegiado tenha o android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER
permissão para definir o ouvinte. No entanto, conseguimos conceder permissões como essas com comandos ADB, então é possível que aqueles que conhecem também possam definir isso manualmente para aplicativos de terceiros.