Android のロール

ロールは、特定の権限、特権に関連付けられたシステム内の一意の名前です。アプリは、特定のロールを保持することを Android API 経由でリクエストできます。具体的には、RoleManager クラスのメソッドを呼び出します。

以下は、使用可能なロールとそれに対応する要件です。

ロール 要件
ASSISTANT 次のうち 1 つ以上:
  • ユーザーのコンテキストに関する情報(たとえば、その時点のフォアグラウンド アプリのパッケージ名とそのコンテキスト情報)が与えられていて、アシストをリクエストされた場合に、アシスト アクションを実行できるアクティビティがある。
  • アプリに、android.permission.BIND_VOICE_INTERACTION 権限で制限された、音声の認識とアクティブな音声操作セッションのホスティングを行える常時オンの音声操作サービスがある。また、このサービスがアシスト アクションを処理できることを示す明示的なフラグがある。
BROWSER 以下のすべて:
  • アプリに暗黙的インテント リクエストで呼び出せるアクティビティがある。これにより、http:// アドレスに対応するウェブページが表示される。
  • アプリが、リンク間のナビゲーションを処理する必要がある。つまり、ウェブページを表示しているユーザーがテキスト内の http:// アドレスをクリックした場合に、選択されたリンクに対応するコンテンツをユーザーの追加の操作なしで表示できる。
  • アプリが、デバイスの現在の位置情報をリクエストされ、ユーザーがそのリクエストを承認した場合に、ウェブページにその情報を提供できるようになっている必要がある。
DIALER 以下のすべて:
  • アプリに、暗黙的インテント リクエストで呼び出せるアクティビティがあり、そのアクティビティでデバイスの通話中に通話中ユーザー インターフェースを提供する。
  • アプリで、着信インテントの処理、ユーザーへの通話に関連する情報(発信者の電話番号など)の表示、着信への応答または拒否を行える。
  • アプリで、発信とデバイスの通話履歴の表示を行う手段をユーザーに提供する。
SMS 以下のすべて:
  • アプリが、SMS アプリに関する要件をすべて満たしている。
  • アプリに、暗黙的インテント リクエストで呼び出せる、電話番号にメッセージを送信できるアクティビティがある。
  • アプリに、android.permission.SEND_RESPOND_VIA_MESSAGE 権限により制限され、暗黙的インテントで呼び出しが可能なサービスがあり、ユーザーが着信時にメッセージで応答することを選択した場合に、そのサービスで受信したメッセージを電話アプリから配信できる。アプリが、独自のメッセージ システムを介してメッセージを配信できる。
  • アプリに 2 つのブロードキャスト レシーバがあり、1 つは android.permission.BROADCAST_SMS 権限で、もう 1 つは android.permission.BROADCAST_WAP_PUSH 権限で制限され、デバイスに送信されたテキストベースの SMS および MMS メッセージをそれぞれリッスンできる。さらに、アプリが SMS プロバイダへのメッセージの書き込みと、ユーザーへの通知を行う。
EMERGENCY 以下のすべて:
  • アプリがシステムアプリである。
  • アプリに、ユーザーの緊急時情報を表示するアクティビティがある。緊急通報アクティビティの緊急ボタンで、誰でもこの画面に移動できる。
HOME アプリに、ユーザーがホームボタンを押すとホーム画面を起動できるアクティビティがある。ボタンやジェスチャーでの操作(上にスワイプしてすべてのアプリを表示するなど)に応じて、アプリアイコン、ウィジェット、サポート ナビゲーションがホーム画面に表示されるべきである。
CALL_REDIRECTION アプリに、android.permission.BIND_CALL_REDIRECTION_SERVICE 権限により制限される、telecom フレームワークのバインド先にできるサービスがある。このサービスが telecom フレームワークから発信電話番号を取得し、次のいずれかのアクションを実行する。
  • そのまま通話を許可する。
  • プロキシ番号経由でルーティングするように発信番号を変更する。
  • 発信をキャンセルする。
CALL_SCREENING アプリに、android.permission.BIND_SCREENING_SERVICE 権限によって制限された、以下の 2 つの機能を実行するサービスがある。
  • 通話のブロック / スクリーニング: サービスで、どの通話をスマートフォンの電話アプリケーションに送信するか(また、DND / 音量が設定されている場合には着信音を鳴らすかどうか)、どの通話をボイスメールにサイレントに送信するかを選択できる。
  • 通話の識別: サービスで、通話に関する情報を識別して、ユーザー インターフェースを介して表示できる。
SYSTEM_GALLERY 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリで、ユーザーが動画や画像を保存、整理、表示できる UI が提供されている。
SYSTEM_AUTOMOTIVE_CLUSTER 以下のすべて:
  • アプリが Automotive のシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリで、自動車のクラスタ ディスプレイ向け機能が(通常はハンドルの近くで)提供されており、ユーザーが着信に応答したり連絡先リストや通話履歴を利用したりできる。
COMPANION_DEVICE_WATCH アプリで、(CompanionDeviceManager クラスにより提供される API を使用して)時計デバイスを関連付けて管理するためのリクエストを行える。アプリが提供する UI で時計とアプリが接続されると、ユーザーがアプリから時計を管理(連絡先とカレンダーの同期、通知と通話の管理など)できる。
SYSTEM_AUTOMOTIVE_PROJECTION 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリで、スマートフォンの画面を車載ディスプレイに投影できる。そうすることで、ドライバーが、タッチ、ハンドル コントロール、音声コマンドなどの自動車の入力メカニズムを使用して、Android スマートフォンのアプリケーション(音楽、ナビゲーション、通話、Google 検索など)にアクセスして操作できる。
SYSTEM_SHELL 以下のすべて:
  • アプリが、Process.SHELL_UID UID が割り当てられたシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリに、コマンドライン レベルで動作するインターフェースが用意されており、ユーザーが Android OS を操作できる(フォルダの内容を表示する、アプリを起動するなど)。必要な権限が付与されていれば、アプリでプログラムによりシェルコマンドを実行できる、または ADB ツールから実行できる。
SYSTEM_CONTACTS 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリに、連絡先の表示、共有、追加、削除、検索など、ユーザーが連絡先を管理するための UI が用意されている。ユーザーがアプリから連絡先を更新すると、アプリにより連絡先プロバイダが更新される。また、ユーザーがアプリから連絡先への通話、メール、テキスト メッセージの送信を行える。
SYSTEM_SPEECH_RECOGNIZER 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリで、音声認識を実行できるサービスを提供している。
  • 音声認識のために、アプリが別のアプリからライブ マイク ストリームを受信した際には、マイクの使用状況を呼び出し元のアプリに適切に関連付け、アプリ オペレーションの統計情報を適宜更新する。
SYSTEM_WIFI_COEX_MANAGER 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリに、セルラーとの干渉のためにデバイスでの使用を避けるべき Wi-Fi チャネルの一覧を動的に設定するサービスがある。
SYSTEM_WELLBEING 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリで、ユーザーの注意が妨げられることを減らす機能や、ユーザーのデバイスの使用状況(週あたりの利用時間など)に関する統計情報を示すための機能を提供するべきである。
SYSTEM_TELEVISION_NOTIFICATION_HANDLER 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリで、TV デバイス上でのヘッドアップ通知をユーザーに表示しなければならない。また、android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL インテントが(SystemUI から)送信された場合に、その時点でのアクティブな通知を表示しなければならない。
SYSTEM_COMPANION_DEVICE_PROVIDER 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリで、付近の周辺機器を検出できなければならない。アプリに UI を用意し、特定の周辺デバイスが関連付けられ、アプリで管理されていることをユーザーが確認できるようにしなければならない。ユーザーによる確認が行われると、周辺デバイスにアクセスするための関連するアプリの権限(名前、アドレス、クラス、ボンディング状態など)が管理アプリにより付与され、ボンディング プロセスの開始が可能になる。
SYSTEM_DOCUMENT_MANAGER 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリに、ユーザーがデバイスで既存のドキュメントを利用したり、新しいドキュメントを作成したりできるようにするアクティビティがある。
  • アプリが、Android CDD セクション 2.2.3. ソフトウェア(見出し [3.2.3.1/H-0-1] の下)に記載されているすべての要件を満たしていなければならない。
SYSTEM_ACTIVITY_RECOGNIZER 以下のすべて:
  • アプリがシステムアプリである。
  • アプリに、android.permission.ACTIVITY_RECOGNITION により制御された、ランニングやサイクリングなどの操作の認識を行えるサービスがある。
SYSTEM_UI 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリに、ユーザーがスマートフォンを操作するためのインターフェースが用意されている(スマートフォンのメイン画面、ナビゲーション、最近のアプリケーション、クイック設定、通知バー、ロック画面、音量コントロールなど)。
SYSTEM_TELEVISION_REMOTE_SERVICE 以下のすべて:
  • アプリが Android TV のシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリに、TV リモコン HID デバイスとの通信(BLE 経由など)、イベントの挿入(ボタンクリックなど)、その他のデータのプラットフォームへの送信(リモコン内蔵のマイクからの音声ストリームなど)が行えるサービスがある。
SYSTEM_UI_INTELLIGENCE 以下のすべて:
  • フレームワーク API(パブリックまたはシステム API)を介して、システム UI 機能(ユーザーが次に使用するアプリを予測して表示する機能など)用のオンデバイス インテリジェント プロセッサを提供するプリインストール サービスである。
  • サービスが、Android CDD セクション 9.8.6 コンテンツ キャプチャに記載されているすべての要件を満たしていなければならない。
  • サービスは android.permission.INTERNET 権限を持つことができない。その代わりに、オープンソース プロジェクトで明確に定義された API を介してインターネットにアクセスしなければならない。
  • サービスは、システムアプリ(Bluetooth、連絡先、メディア、電話、システム UI、インター API を提供するコンポーネント)以外のアプリにバインドできない。許可されている各バインディングが、システム構成の <allow-association> 設定で明示的に定められていなければならない。
  • サービスが、ユーザーによる直接的なアクション(データを共有するたびにユーザーが明示的にボタンを押すなど)がある場合を除き、データをアプリと共有できない。
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE 以下のすべて:
  • SYSTEM_UI_INTELLIGENCE と同一の条件に加えて、周囲の音を対象としたオンデバイス インテリジェント プロセッサがプリインストールされたサービスで提供されている(デバイスの付近で再生されている曲を認識する機能など)。
SYSTEM_AUDIO_INTELLIGENCE 以下のすべて:
  • SYSTEM_UI_INTELLIGENCE と同一の条件に加えて、オーディオ用のオンデバイス インテリジェント プロセッサがプリインストールされたサービスで提供されている(動画の字幕起こし、ポッドキャスト、通話、ビデオ通話、音声メッセージなど)。
SYSTEM_NOTIFICATION_INTELLIGENCE 以下のすべて:
  • SYSTEM_UI_INTELLIGENCE と同一の条件に加えて、通知用のオンデバイス インテリジェント プロセッサがプリインストールされたサービスで提供されている(メッセージ通知での返信やアクションの提案を行う機能など)。
SYSTEM_TEXT_INTELLIGENCE 以下のすべて:
  • SYSTEM_UI_INTELLIGENCE と同一の条件に加えて、テキスト用のオンデバイス インテリジェント プロセッサがプリインストールされたサービスで提供されている(リアルタイム翻訳や自動入力を行う機能など)。
SYSTEM_VISUAL_INTELLIGENCE 以下のすべて:
  • SYSTEM_UI_INTELLIGENCE と同一の条件に加えて、カメラデータの分析を伴う視覚機能用のオンデバイス インテリジェント プロセッサがプリインストールされたサービスで提供されている(ユーザーが見ている間はスマートフォンの画面を表示したままにする機能や、デバイスの前面カメラに映るユーザーの顔の方向に合わせて最適な画面の方向を決める機能など)。
COMPANION_DEVICE_APP_STREAMING 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • Android 15 以降
    デバイス A からデバイス B に初回の接続を確立する場合:
    両方のデバイスで一致するアカウントが AccountManager に少なくとも 1 つなければならない。また、ワンタイム コードでペア設定を確認しなければならない。
    • ユーザーは、デバイスのペア設定時にセカンダリのリモート デバイスでアカウント パスワードを確認しなければならない。または、
    • ワンタイム コードをソースデバイスに表示して、接続済みのデバイスに入力しなければならない。
    • ストリーミング時の範囲の要件はありません。

    または、デバイス A とデバイス B を互いの Bluetooth 範囲内に配置して、ワンタイム コードでストリーミングを認証しなければならない。
    • ワンタイム コードをソースデバイスに表示して、接続済みのデバイスに入力する。
    • デバイスが、ストリーミング中に互いの Bluetooth の範囲内になければならない。
  • アプリで、接続済みデバイスとの通信チャネルの作成と管理を行い、データの交換を行える。アプリと接続済みデバイスが、(共有キーに関する情報を証明するなどして)互いの認証を正常に行い、通信チャネルを確立しなければならない。この通信チャネルは暗号化によって保護しなければならない。
  • アプリで、ローカル デバイスから接続済みデバイスに通知を送信でき、ユーザーが接続済みデバイス上の通知に対してアクションを実行できる。
  • ローカル デバイスで利用可能なアプリの一覧など、アプリ ストリーミングに必要となるメタデータを接続済みデバイスにストリーミングできる。
  • スマートフォンまたは接続済みデバイスのいずれかから、ユーザーが明示的な同意を示している場合に、ローカル デバイスから接続済みデバイスにアプリをストリーミングできる。
  • 接続済みデバイスのストリーミング対象アプリで発生したイベントを、ローカル デバイスでリプレイ(挿入)できる(タブレット上のタッチイベントを、スマートフォン上の同じ座標でリプレイするなど)。
  • ストリーミング対象のアプリがマイクを使用している際に、ローカル デバイスのマイク ストリームを接続済みデバイスのマイク ストリームで置き換えることができる。
  • アプリで、デバイスからのオーディオをキャプチャして、そのオーディオを接続済みデバイスにストリーミングする。
  • ストリーミング対象のアプリがカメラを使用している間は、ローカル デバイスのカメラ ストリームをブロックしなければならない。
  • VerifiedBootState のデバイス証明書を使用するなどして、接続済みデバイスの OS ビルドの完全性を検証しなければならない。
  • 両方のデバイスでデバイス上のアカウント レジストリ(Android の AccountManager クラスなど)に一致するアカウントが 1 つだけある場合にのみ、アプリをストリーミングする。それ以外の場合は、ソースデバイスに表示されたワンタイム コードを接続済みデバイスに入力して、ストリーミングを承認しなければならない。Android マルチユーザーのように、同じデータの独立を信頼してマルチユーザーをサポートする(一方マルチ アカウントはサポートしない)デバイスの場合、ユーザーはデバイスとしてカウントされる。
  • 接続済みデバイスのアカウント認証が期限切れになるか取り消された場合に、即座にストリーミングを停止して、接続済みデバイスとの接続を解除しなければならない。
  • ユーザーが接続済みデバイスを 5 分間操作していない場合(キーボード、タッチ スクリーン、マウスが操作されない場合など)に、実行中のアプリ ストリーミング セッションを切断しなければならない。動画ストリーミング アプリには、この要件は適用されない。
  • Android 15 以降
    表示内容が表示されるリモート デバイスのアイドル タイムアウト時にすべての仮想デバイスを接続解除しなければならない。WakeLock などの Android デバイスの画面をオンのまま維持するケースの場合は、リモート デバイスの画面をオンのまま維持できます。アイドル タイムアウトを指定する必要があります。リモート デバイス自体にアイドル タイムアウトがない場合は、アイドル タイムアウト(最大で 5 分)を使用する必要があります。
  • ソースデバイスがロック画面の知識要素(LSKF)を使用しており、画面がロックされている場合に、接続済みデバイスへのアプリのストリーミングを実行してはならない(デバイスのロック画面がロック解除されている場合を除く)。
  • デバイスが管理者により管理されている場合、その管理者により設定された、付近のデバイスへのアプリ ストリーミングの有効化または無効化に関するポリシーを優先しなければならない(Android で DevicePolicyManager 設定を使用するなど)。
  • ユーザーの観点から、リモート ディスプレイとリモート入力イベントのすべてのソースが同じ論理デバイスに属するようにし(リモート ディスプレイと接続済みキーボードなど)、それに応じてイベントがルーティングされるようにしなければならない。
  • ユーザーは常に表示される通知のボタンを使用するなどして、ローカル デバイスからストリーミングを終了できなければならない。スマートフォンで画面ロックが設定されている場合、この動作はロック画面により制限される。 Android 15 以降では、この永続アフォーダンスをローカル デバイスで、スクロールせずに見える範囲で常に表示させなければならない。
  • ストリーミングが別のデバイスで発生している場合に、ステータスバーのアイコンや常に表示される通知などでソースデバイスにアフォーダンスを表示しなければならない。
DEVICE_POLICY_MANAGEMENT 以下のすべて:
  • OEM のみがこのロールをアプリに付与できる。このロールは、デバイスの出荷時に OEM により定義されたパッケージ名にすぐに付与されることが想定されているため、アプリはこのロールをリクエストできない。
  • アプリで、管理対象プロファイル(プロファイル オーナー)または管理対象デバイス(デバイス オーナー)をプロビジョニングできなければならない。これには、必要に応じてデバイス / プロファイル オーナーになる適切なデバイス ポリシー クライアントのダウンロードおよびインストールを行うことも含まれる。
  • アプリで、必要に応じて、文字列、デバイス ポリシー管理で使用されるドローアブルなどのリソースを動的にアップデートできる。
  • アプリが、プリインストールされたシステムアプリか、プロビジョニングの前にダウンロードされてインストールされるアプリであってもかまわない。
  • プロファイル オーナーのプロビジョニングの場合、ロールを保持するアプリが特定の Android ユーザーでインストールされている際には、そのユーザーに適用可能なすべてのプロファイルでインストールしなければならない。
SYSTEM_APP_PROTECTION_SERVICE 以下のすべて:
  • アプリがシステムアプリである。
  • アプリが、有害な可能性があるアプリ(トロイの木馬、フィッシング アプリ、スパイウェア アプリなど、ユーザー、ユーザーデータ、デバイスを危険にさらす可能性のあるアプリ)やモバイルの望ましくないソフトウェアを検出することのみを目的としている。
  • アプリが、Android CDD セクション 9.8.6. OS レベルおよびアンビエント データで概説されたすべての要件に準拠していなければならない。
  • アプリで、android.permission.INTERNET の標準の権限を宣言してはならない。その代わりに、オープンソース プロジェクトで明確に定義された API を介してインターネットにアクセスしなければならない。
  • アプリで、システムアプリ(権限コントローラ、電話およびインターネット API を提供するコンポーネント)以外のアプリにバインドしてはならない。許可されている各バインディングが、システム構成の <allow-association> 設定で明示的に定められていなければならない。
  • ユーザーによる直接的なアクション(データを共有するたびにユーザーが明示的にボタンを押すなど)がある場合を除き、データをアプリと共有してはならない。
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • アプリで、ユーザーの iOS または Android スマートフォンから Android Auto デバイスにカレンダー データを転送しなければならない。Android Auto デバイスが、このカレンダー データをカレンダー プロバイダに保存できなければならない。
  • アプリで、スマートフォン上の UI コンポーネントを用意し、ユーザーが使用してカレンダーの同期を有効にし、同期するカレンダーを選択できなければならない。アプリで、スマートフォン上の UI コンポーネントを用意し、ユーザーが使用してカレンダーの同期をオフにできなければならない。
  • アプリが、インターネット接続がない場合でも動作するようにしなければならない。たとえば、有線または無線による直接接続など。
AUTOMOTIVE_NAVIGATION 以下のすべて:
  • アプリに、暗黙的インテント リクエストで呼び出せる、ユーザーの現在の位置情報および周囲の情報を表示するアクティビティがある。
  • アプリに、暗黙的インテント リクエストで呼び出せる、ユーザーが指定された地理的場所へのナビゲーションを行えるようにするアクティビティがある。
  • アプリが操作フォーカスを保持している場合に、インストルメント クラスタで起動されるアクティビティがある。このアクティビティにより、ユーザーの現在の位置情報と周辺情報が表示され、指定された地理的場所へのナビゲーションが可能にならなければならない。
COMPANION_DEVICE_COMPUTER 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • 接続済みのパソコンで、ユーザーが通知のミラーリングやスマートフォンからの写真およびメディアへのアクセスを行えるようにする。
SYSTEM_SETTINGS_INTELLIGENCE 次のうち 1 つ以上:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • 設定アプリ向けのインテリジェンス機能(提案や検索機能など)を提供するサービスがある。
NOTES 以下のすべて:
  • アプリに暗黙的インテント リクエストで呼び出せるアクティビティがある。アクティビティでは画面がロックされていても、されていなくても、ユーザーはメモを作成できる。
  • アプリはカテゴリが android.intent.category.DEFAULTandroid.intent.action.CREATE_NOTE のインテント フィルタがあるアクティビティによってこれをサポートする必要がある。アクティビティはインテント エクストラの android.intent.extra.USE_STYLUS_MODE を適切に処理する必要もある。
  • アプリでマニフェスト属性の showWhenLockedturnScreenOn を両方とも true に設定する必要がある。
COMPANION_DEVICE_GLASSES アプリで CompanionDeviceManager クラスにより提供される API を使用して、グラスデバイスを関連付けて管理するためのリクエストを行える。グラスデバイスとアプリが CDM により提供される UI を使って接続されると、ユーザーは連絡先へのアクセスと通知および電話の管理権限をグラスデバイスに付与して、グラスデバイスを管理できる。
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING 以下のすべて:
  • アプリがシステムアプリである。
  • OEM のみがこのロールをアプリに付与できる。
  • Android 15 以降
    デバイス A からデバイス B に初回の接続を確立する場合:
    両方のデバイスで一致するアカウントが AccountManager に少なくとも 1 つなければならない。また、ワンタイム コードでペア設定を確認しなければならない。
    • ユーザーは、デバイスのペア設定時にセカンダリのリモート デバイスでアカウント パスワードを確認しなければならない。または、
    • ワンタイム コードをソースデバイスに表示して、接続済みのデバイスに入力しなければならない。
    • ストリーミング時の範囲の要件はありません。

    または、デバイス A とデバイス B を互いの Bluetooth 範囲内に配置して、ワンタイム コードでストリーミングを認証しなければならない。
    • ワンタイム コードをソースデバイスに表示して、接続済みのデバイスに入力する。
    • デバイスが、ストリーミング中に互いの Bluetooth の範囲内になければならない。
  • アプリで、接続済みデバイスとの通信チャネルの作成と管理を行い、デバイスでデータの交換を行える。アプリと接続済みデバイスが、(共有キーに関する情報を証明するなどして)互いの認証を正常に行い、通信チャネルを確立しなければならない。この通信チャネルはエンドツーエンドの暗号化によって保護しなければならない。
  • アプリで、ローカル デバイスから接続済みデバイスに通知を送信でき、ユーザーが接続済みデバイス上の通知に対してアクションを実行できる。
  • ローカル デバイスで利用可能なアプリの一覧など、アプリ ストリーミングに必要となるメタデータを接続済みデバイスにストリーミングできる。
  • スマートフォンまたは接続済みデバイスのいずれかから、ユーザーが明示的な同意を示している場合に、ローカル デバイスから接続済みデバイスにアプリをストリーミングできる。
  • 接続済みデバイスのストリーミング対象アプリで発生したイベントを、ローカル デバイスでリプレイ(挿入)できる(たとえば、タブレット上のタッチイベントをスマートフォン上の同じ座標でリプレイしたり、グラスデバイスで発生した入力イベントをスマートフォン上の同じ入力セマンティクスでリプレイしたりできる)。
  • ストリーミング対象のアプリがマイクを使用している際に、ローカル デバイスのマイク ストリームを接続済みデバイスのマイク ストリームで置き換えることができる。
  • アプリで、デバイスからのオーディオをキャプチャして、そのオーディオを接続済みデバイスにストリーミングする。
  • VerifiedBootState のデバイス証明書を使用するなどして、接続済みデバイスの OS ビルドの完全性を検証しなければならない。
  • 両方のデバイスでデバイス上のアカウント レジストリ(Android の AccountManager クラスなど)に一致するアカウントが 1 つだけある場合にのみ、アプリをストリーミングする。それ以外の場合は、ソースデバイスに表示されたワンタイム コードを接続済みデバイスに入力して、ストリーミングを承認しなければならない。Android マルチユーザーのように、同じデータの独立を信頼してマルチユーザーをサポートする(一方マルチ アカウントはサポートしない)デバイスの場合、ユーザーはデバイスとしてカウントされる。
  • 接続済みデバイスのアカウント認証が期限切れになるか取り消された場合に、即座にストリーミングを停止して、接続済みデバイスとの接続を解除しなければならない。
  • ソースデバイスが LSKF を使用しており、画面がロックされている場合に、接続済みデバイスへのアプリのストリーミングを実行してはならない(デバイスのロック画面がロック解除されている場合を除く)。
  • デバイスが管理者により管理されている場合、その管理者により設定された、付近のデバイスへのストリーミングの有効化または無効化に関するポリシーを優先しなければならない(Android で DevicePolicyManager 設定を使用するなど)。
  • ユーザーの観点から、リモート ディスプレイとリモート入力イベントのすべてのソースが同じ論理デバイスに属するようにし(リモート ディスプレイと接続済みキーボードなど)、それに応じてイベントがルーティングされるようにしなければならない。
  • ユーザーは常に表示される通知のボタンを使用するなどして、ローカル デバイスからストリーミングを終了できなければならない。スマートフォンで画面ロックが設定されている場合、この動作はロック画面により制限される。
  • ストリーミングが別のデバイスで発生している場合に、ステータスバーのアイコンや常に表示される通知などでソースデバイスにアフォーダンスを表示しなければならない。
WALLET 以下のいずれか。
  • アプリに、PAYMENT カテゴリで少なくとも 1 つの AID を静的に登録する NFC APDU サービスがある。
  • アプリが QuickAccessWalletService のインスタンスを実装する。