Criar navegadores para o Android Automotive OS

A categoria "Navegadores" está na versão Beta.
No momento, qualquer pessoa pode publicar navegadores em faixas de teste interno na Play Store. A publicação em faixas de teste fechado, aberto e de produção será permitida posteriormente.

Além dos requisitos descritos em Criar apps do Android Automotive OS para carros estacionados, há alguns outros requisitos específicos para navegadores que serão abordados nesta página.

Permitir que os usuários bloqueiem o acesso a dados sensíveis

Ao contrário de muitos dispositivos Android, os veículos com o Android Automotive OS geralmente são dispositivos compartilhados. Para que os usuários possam proteger dados sensíveis, como senhas e informações de pagamento, os navegadores criados para o Android Automotive OS não podem salvar nem permitir acesso a senhas ou informações de pagamento, a menos que o usuário possa bloquear o acesso a senhas usando um bloqueio de perfil. A autenticação pode ser realizada usando a credencial do dispositivo ou criando um sistema de autenticação no app.

Além disso, antes de sincronizar dados confidenciais, os navegadores criados para o Android Automotive OS precisam solicitar que o usuário faça a autenticação e envie mensagens para informar que os dados estão sendo sincronizados com o carro. Se o usuário não tiver um método de autenticação configurado, você poderá solicitar que eles configurem uma ao tentar sincronizar dados sensíveis, usando o credencial do dispositivo ou uma específica para seu app.

Usar a credencial do dispositivo para autenticação

Esta seção fornece orientações sobre como usar as credenciais do dispositivo e as APIs de autenticação do sistema para atender aos requisitos de dados sensíveis descritos anteriormente.

Conferir se há uma credencial do dispositivo definida

Para conferir se o usuário protegeu o dispositivo com um PIN, padrão ou senha, use o método KeyguardManager::isDeviceSecure.

Kotlin

val keyguardManager = context.getSystemService(KeyguardManager::class.java)
val isDeviceSecure = keyguardManager.isDeviceSecure()

Java

KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
boolean isDeviceSecure = keyguardManager.isDeviceSecure();

Abrir as configurações da tela de bloqueio

Para reduzir o atrito no caso de uma credencial de dispositivo, abra a tela "Segurança" no app Configurações usando a ação da intent Settings.ACTION_SECURITY_SETTINGS.

Kotlin

context.startActivity(Intent(Settings.ACTION_SECURITY_SETTINGS))

Java

context.startActivity(new Intent(Settings.ACTION_SECURITY_SETTINGS))

Pedir a autenticação do usuário

Para pedir a autenticação do usuário, use a API BiometricPrompt, conforme descrito em Mostrar uma caixa de diálogo para autenticação biométrica.