Создание браузеров для Android Automotive OS

Категория «Браузеры» находится в стадии бета-тестирования.
В настоящее время любой желающий может публиковать браузеры для внутреннего тестирования в Play Store. Публикация для закрытого, открытого и производственного тестирования будет разрешена позднее.

Помимо требований, описанных в разделах Создание припаркованных приложений для автомобилей и Добавление поддержки Android Automotive OS в ваше припаркованное приложение , существует несколько дополнительных требований, специфичных для браузеров, которые подробно описаны на этой странице.

Отметьте свое приложение как браузер

Чтобы указать, что ваше приложение является браузером, оно должно включать фильтр намерений, например следующий, в экспортированном элементе <activity> :

<activity ...
    android:exported="true">
  ...
  <intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="http"/>
  </intent-filter>
</activity>

Разрешить пользователям блокировать доступ к конфиденциальным данным

В отличие от многих устройств Android, автомобили на базе Android Automotive OS часто являются устройствами общего пользования. Чтобы пользователи могли защитить свои конфиденциальные данные, такие как пароли и платежную информацию, браузеры, разработанные для Android Automotive OS , не должны сохранять или предоставлять доступ к паролям или платежной информации, если только пользователь не может заблокировать доступ к паролям с помощью блокировки профиля . Аутентификация может быть выполнена либо с использованием учётных данных устройства, либо путём создания системы аутентификации в вашем приложении.

Кроме того, перед синхронизацией конфиденциальных данных браузеры, разработанные для Android Automotive OS , должны запрашивать у пользователя аутентификацию и отправлять ему уведомление о синхронизации данных с автомобилем . Если у пользователя не настроен какой-либо метод аутентификации, вы можете предложить ему настроить его при попытке синхронизации конфиденциальных данных, используя либо учётные данные устройства , либо данные, специфичные для вашего приложения.

Используйте учетные данные устройства для аутентификации

В этом разделе приведены рекомендации по использованию API-интерфейсов учетных данных устройства и аутентификации системы для удовлетворения требований к конфиденциальным данным, описанных ранее.

Проверьте, установлены ли учетные данные устройства.

Чтобы определить, защитил ли пользователь свое устройство с помощью PIN-кода, шаблона или пароля, можно использовать метод KeyguardManager::isDeviceSecure .

Котлин

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

Ява

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

Откройте настройки экрана блокировки.

Чтобы уменьшить неудобства для пользователя в случае, если ему необходимо настроить учетные данные устройства, вы можете открыть экран «Безопасность» в приложении «Настройки», используя действие намерения Settings.ACTION_SECURITY_SETTINGS .

Котлин

context.startActivity(Intent(Settings.ACTION_SECURITY_SETTINGS))

Ява

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

Предложить пользователю пройти аутентификацию

Чтобы предложить пользователю пройти аутентификацию, можно использовать API BiometricPrompt , как описано в разделе Отображение диалогового окна биометрической аутентификации .