Configuração do Android Kiosk: O que fazer quando o proprietário do dispositivo impede o acesso às configurações
Atablet Android de 10,1 polegadas foi configurado para uso em quiosque com ADB, um lançador personalizado e Proprietário do Dispositivo. Após a reinicialização, o aplicativo foi iniciado conforme o esperado, mas o dispositivo não conseguiu mais acessar a interface normal de Configurações do Android.
Isso gerou um desafio comum na implantação de quiosques: uma vez que a navegação do sistema e os controles de gerenciamento do dispositivo tenham sido restringidos, como recuperar o tablet para testes adicionais? E, se o aplicativo precisar abrir Wi-Fi ou outras funções do sistema, quais Intents do Android ainda podem ser utilizadas?
O cliente usou inicialmente comandos ADB para modificar o comportamento da interface do sistema:
adb shell settings put system hide_navbar 1
adb shell settings put system statusbar_disp 1
adb shell settings put system swipe_show_nav_bar 0
adb shell settings put system power_button_show 0
O aplicativo foi então definido como tela inicial padrão, seguido pela configuração do aplicativo como Proprietário do Dispositivo ativar as funções necessárias de gerenciamento de dispositivos.
Após a reinicialização, o Tablet Android em modo quiosque entrou automaticamente no aplicativo conforme esperado. No entanto, o cliente não conseguia mais sair da tela principal do aplicativo para acessar as Configurações do Android ou outras funções do sistema. Os botões Configurações e Wi-Fi integrados ao aplicativo também deixaram de abrir as respectivas páginas do sistema.
A pergunta imediata não era simplesmente como sair do aplicativo. O cliente precisava de um método confiável para recuperar o Tablet Android para testes adicionais e também desejava compreender quais Intents do sistema poderiam ser utilizados pelo seu aplicativo.
Por que o tablet Android ficou difícil de acessar
O problema resultou da aplicação simultânea de várias camadas de controle do dispositivo.
O lançador personalizado determinava qual aplicativo aparecia como tela inicial, enquanto o proprietário do dispositivo concedia ao aplicativo um controle muito mais amplo sobre a política do dispositivo. A documentação oficial do Android para dispositivos dedicados apoia esse tipo de configuração em implantações de quiosque e dispositivos gerenciados, incluindo o controle do aplicativo inicial padrão e a restrição de acesso às funções do sistema.
Os comandos ADB adicionaram outra camada ao alterar o comportamento da interface do usuário do sistema. Essas configurações específicas dependem do dispositivo ou do firmware, e não são APIs universais do Android; portanto, seu efeito exato depende de como o firmware do tablet as implementa.
Isso significa que um Tablet Android utilizado como dispositivo de quiosque pode tornar-se difícil de recuperar quando o lançador, a configuração de proprietário do dispositivo, as restrições da interface do usuário do sistema e a navegação do aplicativo forem todos alterados simultaneamente.
O fato de o botão Configurações ou Wi-Fi do aplicativo deixar de funcionar não significa necessariamente que a Intent em si esteja incorreta. A Activity de Configurações de destino pode estar indisponível, restrita ou inacessível sob a configuração atual do dispositivo. O Android também recomenda verificar se uma Intent pode ser resolvida antes de tentar iniciá-la.

Caminhos alternativos para recuperação de um tablet Android em modo quiosque bloqueado
Se o aplicativo já estiver configurado como Proprietário do Dispositivo, a recuperação baseada em software deve ser considerada em primeiro lugar.
ODevicePolicyManager do Android fornece funções de gerenciamento de dispositivos que podem ser utilizadas por um Proprietário do Dispositivo. Dependendo da versão do Android e da configuração do aplicativo, um aplicativo Proprietário do Dispositivo pode usar o mecanismo apropriado de limpeza do dispositivo para restaurar o tablet a um estado limpo para testes. wipeData() é a API consolidada para limpar dados do usuário, enquanto versões mais recentes do Android oferecem funcionalidades adicionais de limpeza de dispositivo.
A obsoleta clearDeviceOwnerApp() o método não deve ser tratado como um método geral de recuperação de produção. O Android documenta-o como uma API voltada para testes e recomenda a redefinição de fábrica como o modo normal de remover uma relação de Proprietário do Dispositivo.
O ADB também fornece comandos de gerenciamento de política de dispositivo, mas estes têm restrições. Por exemplo, adb shell dpm remove-active-admin não é um método universal para remover um Proprietário do Dispositivo; a documentação oficial do ADB do Android especifica requisitos, como a declaração testOnly do aplicativo.
Se a recuperação por software não estiver disponível porque o aplicativo não puder executar a operação exigida, o caminho remanescente será uma redefinição de fábrica por hardware ou o procedimento de Recuperação do Android .
A combinação exata de botões não deve ser presumida com base em outro modelo de tablet Android. O comportamento de recuperação é determinado pela implementação de firmware e hardware do tablet. Portanto, num projeto de tablet Android personalizado, o procedimento de recuperação adequado deve ser confirmado para o modelo e firmware reais antes da implantação.
Para este tipo de Tablet Android em modo quiosque , ter um método definido de recuperação é especialmente útil durante testes de integração, pois a configuração em nível de sistema pode remover intencionalmente a navegação normal do usuário.
Testando Intenções de Configurações e Funções do Sistema em um Tablet Android
A segunda pergunta do cliente foi se o aplicativo poderia iniciar diretamente funções do sistema, como Configurações e Wi-Fi.
O Android fornece ações padrão de Configurações para essas funções. Por exemplo:
|
Função |
Intent padrão do Android |
|
Configurações principais |
Settings.ACTION_SETTINGS |
|
Configurações de Wi-Fi |
Settings.ACTION_WIFI_SETTINGS |
|
Configurações sem fio |
Settings.ACTION_WIRELESS_SETTINGS |
|
Configurações de Bluetooth |
Settings.ACTION_BLUETOOTH_SETTINGS |
|
Configurações de exibição |
Settings.ACTION_DISPLAY_SETTINGS |
|
Configurações de Localização |
Settings.ACTION_LOCATION_SOURCE_SETTINGS |
|
Configurações de Som |
Settings.ACTION_SOUND_SETTINGS |
|
Configurações de Segurança |
Settings.ACTION_SECURITY_SETTINGS |
|
Configurações do Aplicativo |
Settings.ACTION_APPLICATION_SETTINGS |
|
Configurações Específicas do Aplicativo |
Settings.ACTION_APPLICATION_DETAILS_SETTINGS |
Essas são ações-padrão das Configurações do Android, e não interfaces específicas de um determinado Fabricante de tablet Android . No entanto, a existência de um Intent não garante que ele será aberto com sucesso em todos os dispositivos ou em todas as configurações de quiosque. O Android recomenda verificar o Intent com resolveActivity() antes de iniciá-lo.
Para um tablet Android integrado ao sistema, os testes de Intent devem, portanto, ser realizados no firmware real e na versão do Android utilizados para implantação. O teste deve verificar não apenas se o Intent existe, mas também se a Activity correspondente pode ser acessada após a aplicação das restrições de Device Owner, lançador e interface do sistema.
Se você estiver trabalhando em um projeto de tablet quiosque Android ou de integração de sistema e precisar de ajuda com recuperação de Device Owner, Intents de Configurações ou problemas relacionados de configuração, entre em contato conosco informando o modelo do seu tablet e a versão do Android. Podemos discutir as opções disponíveis de suporte técnico e personalização.
O mesmo princípio se aplica a outras funções do sistema. Pode existir uma API padrão do Android, mas o comportamento real de um tablet personalizado depende de sua versão do Android, configuração de firmware e políticas de gerenciamento de dispositivos.
E quanto às solicitações de ativação (wake requests)?
A pergunta do cliente sobre ‘solicitações de ativação’ é ligeiramente diferente do lançamento de uma página de Configurações.
Intent.ACTION_SCREEN_ON representa uma transmissão do sistema que indica que a tela tornou-se interativa. Trata-se de uma transmissão protegida do sistema; portanto, um aplicativo não deve tratá-la como um Intent comum que possa simplesmente enviar para ativar o tablet.
Se o requisito for ativar a tela, manter a tela ativa ou controlar o comportamento de ativação da tela , o mecanismo apropriado depende dos requisitos exatos da aplicação. O Android fornece APIs de gerenciamento de energia e de janelas/atividades para esses cenários, incluindo PowerManager e funcionalidade de bloqueio de ativação (wake-lock), quando apropriado.
Essa distinção é importante ao desenvolver aplicações para um Tablet Android em modo quiosque . "Iniciar uma função do sistema" e "controlar o estado de energia do dispositivo" são operações do sistema diferentes e devem ser tratadas por meio de APIs distintas.

Suporte Técnico para Integração de Tablet Android
Esse caso também mostra por que a implantação em quiosque pode exigir mais do que apenas a configuração básica de hardware de um tablet Android.
Quando um tablet é integrado a uma aplicação dedicada, um sistema de ponto de venda (POS), um quiosque, um sistema industrial ou outro dispositivo gerenciado, a configuração de software pode envolver simultaneamente o inicializador (launcher), o proprietário do dispositivo (Device Owner), a interface do usuário do sistema, as permissões das aplicações, as intenções de configurações (Settings Intents) e o comportamento de recuperação.
Para projetos que exigem tablet Android personalizado configurações; esses requisitos devem ser avaliados em conjunto com a configuração de hardware e do sistema Android, em vez de serem tratados como problemas isolados durante os testes finais.
A solução adequada depende da versão do Android, do firmware do tablet, da configuração do aplicativo e das funções que o integrador de sistemas precisa controlar. A documentação técnica também pode ser elaborada com base nas interfaces de sistema disponíveis, nos Intents suportados, nas permissões e nas limitações específicas do dispositivo.
Se você estiver testando um Tablet Android para implantação em quiosque ou integração de sistema e encontrar problemas semelhantes com Proprietário do Dispositivo, inicializadores personalizados, modo quiosque, Intents de Configurações, restrições da interface do sistema ou recuperação do dispositivo , por favor entre em contato conosco para suporte técnico .
Você pode fornecer o modelo do seu tablet, a versão do Android, a configuração de implantação e a função específica que está tentando implementar. Em seguida, podemos discutir as opções disponíveis de Personalização de tablets Android e suporte técnico opções para o seu projeto.