自動車向けに駐車中用のアプリを作成すると駐車中用のアプリに 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) )
ユーザーに認証を求める
生体認証ダイアログを表示するで説明されているように、ユーザーに認証を求めるには、BiometricPrompt API を使用します。