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

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

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

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

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

<activity ...
    android:exported="true">
  ...
  <intent-filter>
    <action android:name="android.intent.action.MAIN"/>
   ...
    <category android:name="android.intent.category.APP_BROWSER"/>
  </intent-filter>
</activity>

Для получения дополнительной информации см. android.intent.category.APP_BROWSER .

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

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

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

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

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

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

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

val keyguardManager = context.getSystemService<KeyguardManager>()
val isDeviceSecure = keyguardManager?.isDeviceSecure == true

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

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

context.startActivity(
    Intent(Settings.ACTION_SECURITY_SETTINGS)
        .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
)

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

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