Помимо требований, описанных в статьях Как создать приложение для автомобилей, которое можно использовать, когда автомобиль припаркован и Как добавить поддержку 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
Как открыть настройки заблокированного экрана
Чтобы упростить пользователям настройку учетных данных устройства, вы можете открыть экран "Безопасность" в приложении "Настройки", используя действие намерения Settings.ACTION_SECURITY_SETTINGS.
context.startActivity( Intent(Settings.ACTION_SECURITY_SETTINGS) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) )
Предложить пользователю пройти аутентификацию
Чтобы запросить у пользователя аутентификацию, вы можете использовать API BiometricPrompt, как описано в разделе Как показать диалоговое окно биометрической аутентификации.