Android Automotive OS 用のブラウザを作成する

Android Automotive OS 用の駐車時向けアプリを作成するで説明されている要件のほか、このページで説明するブラウザ固有の追加要件がいくつかあります。

ユーザーが機密データへのアクセスをブロックできるようにする

多くの Android デバイスとは異なり、Android Automotive OS の搭載車両は、共有されることの多いデバイスです。ユーザーがパスワードや支払い情報などのセンシティブ データを保護できるように、Android Automotive OS 用に作成されたブラウザは、パスワードや支払い情報を保存できないようにするか、アクセスを許可しないようにする必要があります。ただし、ユーザーがプロファイルのロックを使用してパスワードへのアクセスをブロックできる場合は除きます。認証を行うには、デバイスの認証情報を使用するか、アプリ内に認証システムを構築します。

さらに、センシティブ データを同期する前に、Android Automotive OS 用に構築されたブラウザは、ユーザーに認証を求め、データが車に同期されることを知らせるメッセージを送る必要があります。ユーザーが認証方法を設定していない場合は、機密データの同期時に、デバイス認証情報またはアプリに固有の認証情報を使用して、ユーザーに設定を促すことができます。

認証にデバイス認証情報を使用する

このセクションでは、デバイス認証情報とシステム認証 API を使用して、前述のセンシティブ データの要件を満たす方法について説明します。

デバイス認証情報が設定されているかどうかを確認する

ユーザーがデバイスを PIN、パターン、またはパスワードで保護しているかどうかを調べるには、KeyguardManager::isDeviceSecure メソッドを使用します。

Kotlin

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

Java

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

ロック画面の設定を開く

ユーザーがデバイス認証情報を設定する必要がある場合、その負担を軽減するために、Settings.ACTION_SECURITY_SETTINGS インテントのアクションを使用して、設定アプリ内のセキュリティ画面を開くことができます。

Kotlin

context.startActivity(Intent(Settings.ACTION_SECURITY_SETTINGS))

Java

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

ユーザーに認証を求める

生体認証ダイアログを表示するで説明されているように、ユーザーに認証を求めるには、BiometricPrompt API を使用します。