Além dos requisitos descritos em Criar apps do Android Automotive OS para carros estacionados e Adicionar suporte ao Android Automotive OS ao app estacionado, há alguns outros requisitos específicos para navegadores que serão abordados nesta página.
Marcar o app como um navegador
Para indicar que o app é um navegador, ele precisa incluir um filtro de intent como
o seguinte em um elemento <activity> exportado:
<activity ...
android:exported="true">
...
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
...
<category android:name="android.intent.category.APP_BROWSER"/>
</intent-filter>
</activity>
Para mais informações, consulte
android.intent.category.APP_BROWSER.
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 nenhum método de autenticação configurado, você vai poder solicitar que ele configure um quando tentar sincronizar dados sensíveis, usando a credencial do dispositivo ou uma específica do 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 determinar se o usuário protegeu o dispositivo com um PIN, padrão ou senha, use o KeyguardManager::isDeviceSecure método.
val keyguardManager = context.getSystemService<KeyguardManager>() val isDeviceSecure = keyguardManager?.isDeviceSecure == true
Abrir as configurações da tela de bloqueio
Para reduzir o atrito do usuário no caso de precisar definir uma credencial de dispositivo, você pode abrir a tela "Segurança" no app Configurações usando a Settings.ACTION_SECURITY_SETTINGS ação da intent.
context.startActivity( Intent(Settings.ACTION_SECURITY_SETTINGS) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) )
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.