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 Google Play Store. A publicação em faixas de teste fechado, aberto e de produção será permitida em uma data posterior.

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.