Estou avaliando se e como um aplicativo corporativo CF .NET pode ser transferido para ser executado em dispositivos Android. O aplicativo em telefones Windows Mobile é executado em modo quiosque, onde o aplicativo é iniciado automaticamente em modo de tela inteira após a inicialização e os usuários não conseguem acidentalmente ou por vontade própria acessar qualquer outra parte do telefone.
É possível no Android ter apenas um aplicativo inicializado automaticamente após a inicialização e evitar que os usuários acessem acidentalmente (ou voluntariamente) qualquer outra parte do dispositivo Android?
android
kiosk
kiosk-mode
Erik H
fonte
fonte
Respostas:
Você pode iniciar automaticamente os aplicativos na inicialização, ouvindo a
android.intent.action.BOOT_COMPLETED
intenção em um BroadcastReceiver e iniciar sua atividade a partir daí. Na atividade, você pode se registrar como a nova tela inicial padrão [1] e manipular as chaves.Acho que há alguns casos que você não pode controlar sem modificar a estrutura (como longpress em Home para mostrar os aplicativos ativos no momento) - eu também poderia estar enganado.
Mas para um protótipo isso pode ser suficiente.
Divirta-se mexendo!
[1]:
fonte
Você pode personalizar isso (desabilitar o acesso ao menu, limitar a adição de aplicativos etc.) para habilitar o quiosque. http://code.google.com/p/android-launcher-plus/
fonte
No novo Android L Preview, o Google anunciou o Bloqueio de Tarefas , que faz exatamente isso. No entanto, parece que precisa de root.
fonte
Depois de pesquisar isso por um tempo, descobri uma boa solução. Porém, isso só funciona em dispositivos com root, mas acho que se for apenas para este aplicativo, então, fazer o root não será um problema.
Torne seu aplicativo o iniciador adicionando
ao seu filtro de intenção
Certifique-se de que seu aplicativo feche a barra de ferramentas para que você não possa alcançar a barra de notificação, consulte Como desativar a barra de status / barra de notificação no Android de forma programática? ou http://blog.vogella.com/2011/02/28/android-hidding-the-status-and-title-bar/
Em seguida, para impedir que qualquer outro programa seja aberto por engano, use um serviço de acessibilidade para verificar o estado da janela alterado, compare o pacote com uma lista branca ou negra e use ActivityManager.killBackgroundProcesses para encerrar caso não deva ser executado.
Verifique também http://thebitplague.wordpress.com/2013/04/05/kiosk-mode-on-the-nexus-7/ para outra forma
fonte
Iniciando seu aplicativo na inicialização
a MELHOR maneira de fazer isso é definir seu aplicativo como o iniciador
Bloqueando seu aplicativo
a maneira mais confiável é usar um dispositivo com Lollipop ou superior e fazer uso de
primeiro você deve definir seu aplicativo como o proprietário do dispositivo. NB seu dispositivo deve ser desprovisionado: se você o registrou, você deve fazer uma redefinição de fábrica e pular o registro da conta.
para poder registrar seu aplicativo, você deve primeiro configurar um componente DeviceAdminReceiver:
depois de ter um dispositivo não provisionado, você pode iniciar o seguinte comando do adb ( sem necessidade de root )
para evitar que o Android peça permissão ao usuário para fixar seu aplicativo, você deve chamar setLockTaskPackages
finalmente!
fonte
O Google lançou recentemente a API de gerenciamento do Android, que permite configurar facilmente o modo quiosque para qualquer dispositivo Android com Android 5.1 ou superior e também definir várias outras políticas.
fonte
Página de configuração de dispositivos de uso único do desenvolvedor Android descreveu essas coisas que você pode facilmente saber mais a partir daí.
Agora é fácil configurar o Android 6.0 Marshmallow e dispositivos posteriores como dispositivos corporativos de uso único (COSU).
fonte
Encontrou outra técnica possível nesta postagem do fórum . Citando essa postagem:
http://www.basic4ppc.com/forum/basic4android-getting-started-tutorials/10839-android-kiosk-mode-tutorial.html
Parece haver um exemplo de arquivo ZIP com o código do modo quiosque disponível para download também.
fonte
O framework Xposed pode fazer isso. É necessário root e existe a possibilidade de não funcionar em todas as plataformas. Procure o método disable () na classe android.app.StatusBarManager .
Aqui no código-fonte do Android
Veja aqui como escrever seu próprio módulo: Tutorial de desenvolvimento do Xposed
É muito mais fácil do que você pensa à primeira vista. Boa sorte!
fonte
Junto com a configuração de seu aplicativo com um receptor de BOOT, e esta resposta para evitar a expansão da barra de status, esta solução funciona no 4.4 e superior como um aplicativo de quiosque completo:
Coloque em seu onCreate ():
Isso ocultará completamente o botão Voltar, os aplicativos e o botão inicial.
fonte