Android 12で導入されたコンパニオンデバイスプロファイルは、コンパニオンアプリが、スマートウォッチなどのコンパニオンデバイスのタイプに固有の一連の権限を要求できるようにする機能です。コンパニオンデバイスプロファイルを使用すると、アプリがモバイルデバイス上のユーザーに単一のプロンプトを表示して、個別にアクセス許可を要求する複数のプロンプトではなく、定義された一連のアクセス許可を要求できるようにすることで、登録プロセスが簡素化されます。これにより、セットアップエクスペリエンスがより合理化され、コンパニオンアプリのオプトイン率が向上します。
コンパニオンデバイスプロファイルの使用は、コンパニオンデバイスを所有するデバイスメーカーのみが利用できます。コンパニオンデバイスが機能にアクセスするには、要件を満たし、承認されている必要があります。
次のコンパニオンデバイスプロファイルタイプは、Android 12で使用できます: COMPANION_DEVICE_WATCH
。
コンパニオンデバイスの詳細については、コンパニオンデバイスのペアリングを参照してください。
デバイスの動作
このセクションでは、コンパニオンデバイスプロファイルが使用されている場合のデバイスの動作について説明します。
ユーザーがコンパニオンデバイスとの関連付けを作成するアプリのリクエストを受け入れると、 CompanionDeviceManager
(CDM)サービスはコンパニオンデバイスが接続するのを待ち、接続すると、CDMはデバイスプロファイルの役割(たとえば、監視)をに割り当てます。コンパニオンアプリ。指定されたプロファイルロールに定義されているすべての権限を付与します。図1は、 COMPANION_DEVICE_WATCH
デバイスプロファイルのアクセス許可を要求するアプリの例を示しています。
図1.ウォッチデバイスプロファイルのアクセス許可を要求するダイアログ。
パッケージのデータがクリアされた場合やデバイスが忘れられた場合など、アプリとコンパニオンデバイス間の関連付けが削除されると、CDMはアプリのデバイスプロファイルロールを取り消します。これにより、プロファイルロールに定義されたすべてのアクセス許可が削除されます。アプリから。
ユーザーが特定のデバイスプロファイルのアクセス許可を付与するアプリのリクエストを受け入れた後、ユーザーは付与された個々のアクセス許可を取り消すことができます。ユーザーが権限を取り消すと、アプリはコンパニオンデバイスに関連付けられたままになりますが、特定の機能が使用できなくなる可能性があります。アプリが機能するために権限が必要な場合、アプリは通常の権限リクエストを通じて権限をリクエストする必要があります。
要件
コンパニオンアプリがコンパニオンデバイスプロファイルAPIにアクセスするには、アプリが次の要件を満たしている必要があります。
- コンパニオンデバイス(スマートウォッチなど)を用意します。
- コンパニオンデバイスプロファイルに定義されたアクセス許可を要求する正当な理由があります。
コンパニオンデバイスプロファイルの要件を見る
次の表に、 COMPANION_DEVICE_WATCH
デバイスプロファイルロールに定義されている権限と、それらを使用するための要件を示します。
権限 | コンパニオンアプリとデバイスの要件 |
---|---|
通知BIND_NOTIFICATION_LISTENER_SERVICE |
|
電話phone |
|
SMSsms |
|
連絡先contacts |
|
カレンダーcalendar |
|
近くのデバイスnearby_devices |
|
eSIMプロビジョニングUSE_ICC_AUTH_WITH_DEVICE_IDENTIFIER |
|
進行中の通話の管理MANAGE_ONGOING_CALLS |
|
アクセスの取得
アプリがコンパニオンデバイスプロファイルにアクセスするには、承認されて許可リストに追加される必要があります。許可リストへの追加リクエストを受信すると、Androidチームはアプリをレビューして、対応するコンパニオンデバイスプロファイルの要件を満たしていることを確認します。
GMSパートナー:
パートナーは、Googleアカウントマネージャーに連絡して、コンパニオンアプリを許可リストに追加するようにリクエストできます。
実装
特定のデバイスでコンパニオンアプリを実装しているデバイスメーカーの場合、次の必要なAndroidシステム構成を使用してコンパニオンアプリを認証します。これにより、アプリはユーザーへのCDMプロンプトの表示をスキップできます。
次のコマンドを使用して証明書を取得します。
keytool -printcert -jarfile PATH/TO/APK
構成ファイルの次のサンプル入力に示されているように、パッケージ名と証明書を置き換えます。
<!-- A list of packages managing companion device(s) by the same manufacturers as the main device. It will not create the association without prompting if the association has been called multiple times in a short period. Note that config_companionDeviceManagerPackage and config_companionDeviceCerts are parallel arrays. --> <string-array name="config_companionDevicePackages" translatable="false"> <item>YOUR_COMAPNION_APP_PACKAGE_NAME</item> </string-array> <!-- A list of SHA256 Certificates managing companion device(s) by the same manufacturers as the main device. It will fall back to showing a prompt if the association has been called multiple times in a short period. Note that config_companionDeviceCerts and config_companionDeviceManagerPackage are parallel arrays. Example: "1A:2B:3C:4D" --> <string-array name="config_companionDeviceCerts" translatable="false"> <item>YOUR_COMPANION_APP_CERTIFICATE</item> </string-array>
AssociationRequest
を使用して、単一のコンパニオンデバイスへの関連付け要求を行います。
DEVICE_PROFILE_WATCH
プロファイルを要求するコンパニオンアプリを実装しているサードパーティの開発者は、次の手順を実行します。
-
setDeviceProfile
メソッドを呼び出します。 -
AssociationRequest
をビルドするときに、DEVICE_PROFILE_WATCH
プロファイルを渡します。
検証
コンパニオンデバイスプロファイル機能の動作をテストするには、次のCTSテストを使用します。