スマートグラス向けアプリの品質に関するガイドラインは、モバイルのアプリの中核品質に関する基本基準を拡張したものです。
これらのアプリの品質に関するガイドラインとポリシーは、互換性ティアの定義、チェックリスト、音声のみのエクスペリエンスに関するポリシーに記載されているように、スマートグラスの Android XR プラットフォームに固有の重要なマルチモーダル インタラクションに重点を置いています。これらのセクションを確認して、アプリがオーディオ グラスとディスプレイ グラスで優れたユーザー エクスペリエンスを提供していることを確認してください。
拡張エクスペリエンス: モバイルアプリの互換性階層の定義
次の互換性ティアの定義を確認して、アプリがグラスでの拡張エクスペリエンスをどの程度サポートしているかを把握してください。
対応
互換性のあるモバイルアプリは、デベロッパーが追加の作業を行うことなく、グラスで拡張されたエクスペリエンスを提供します。これは、グラス用に変更されていない Bluetooth 接続を含む既存の Android モバイルアプリを表します。Android XR プラットフォームは、サポートされていないハードウェア機能に依存していない限り、このタイプのアプリを自動的にサポートします。
この機能を実現するために、プラットフォームは標準の Android システム サーフェスをグラスにシームレスに拡張します。たとえば、通知はユーザーの視界に自動的に表示されるか、音声で読み上げられる(オーディオ グラスの場合)ため、ユーザーはスマートフォンを取り出すことなく、重要なタスクをひと目で確認できます。
差別化
差別化された拡張エクスペリエンスは、Jetpack XR SDK の全機能とフォーム ファクタの独自のハードウェアを活用して、グラス向けに特別に設計されています。
これらの革新的な拡張エクスペリエンスを構築するには、次のライブラリを使用します。
- Jetpack Compose Glimmer: 光学シースルー ディスプレイ向けに最適化された、最小限で読みやすいインターフェースを作成するための Compose UI ツールキット。
- Jetpack Projected: リソースを管理し、コンパニオン スマートフォン(ホスト)とグラス(投影デバイス)間の機能をシームレスにブリッジします。
- Jetpack XR 向け ARCore: デバイス トラッキングや Geospatial API などの高度な認識機能にアクセスできます。これにより、ローカライズや、徒歩ナビなどのコンテキスト認識機能が実現します。
拡張エクスペリエンス: モバイルアプリの品質チェックリスト
アプリで拡張エクスペリエンスの優れたユーザー エクスペリエンスを実現するには、以下の互換性チェックリストとテストを確認してください。
このチェックリストとテストは、ほとんどの種類の Android アプリに関する品質要件を包括的に定めています。
対応
互換性のあるアプリとは、標準の Android サーフェス(標準通知やライブ情報通知など)を活用して、グラス上で自動的に動作する既存の Android モバイルアプリのことです。この互換性階層では、グラス固有のコードは必要ありません。
アプリは、次のコア要件を満たしている必要があります。
- 通知: すべてのアクション可能で時間に依存する通知が、標準の Android
NotificationManagerAPI を使用していることを確認します。これにより、プラットフォームによって、音声読み上げ(オーディオ デバイス)または最小限のビジュアル オーバーレイ(ディスプレイ デバイス)に正しく変換されます。 - ライブ情報: アプリに進行中のアクティビティ(進行状況に関連するタスクなど)がある場合は、標準のライブ情報通知フレームワークを使用して、プラットフォームがこの情報をハンズフリーで一目でわかるように表示できるようにする必要があります。
- Google Play: アプリは、該当するすべての Android および Google Play のポリシーに準拠している必要があります。互換性は、マニフェストの宣言と機能要件に基づいて自動的に判断されます。
差別化
差別化されたアプリは、Jetpack XR SDK(Jetpack Compose Glimmer、Jetpack Projected、ARCore for Jetpack XR などのライブラリを含む)を使用して特別に構築され、世界を認識する高度に最適化されたユーザー エクスペリエンスを提供したり、独自の拡張機能を使用したりします。アプリに適した要件を確認してください。
| カテゴリ | 地域 | ガイダンス |
|---|---|---|
コア機能 |
スマートグラスのアクティビティを開始する | エクスペリエンスは、モバイルアプリから直接起動して制御できるようにする必要があります。特に、初期設定や、UX 機能が少ないオーディオ グラスやディスプレイ グラスに引き継ぐ前の、複雑な情報のナビゲーションでは、このことが重要になります。 |
| アプリを開くコマンド | Gemini 搭載のメガネでは、エクスペリエンスをゼロ起動状態に設定する必要があります。これにより、ユーザーが「[アプリ] を開いて」というコマンドでプロンプトを送信すると、アプリは従来のメニューをバイパスして、すぐにアクション可能な音声エクスペリエンス(音声のみのバックグラウンド モード、ライブ リスニング状態、即時音声キューなど)に移行します。 | |
| カメラの初期化 | カメラへのアクセスは、モバイルのエントリ ポイントまたはアクティビティから開始することも、デバイスのカメラ アクション ジェスチャーを使用して直接入力することもできます。モバイル サーフェスからカメラへのアクセスが開始された場合、カメラ ストリーミングが開始される前にカウントダウンが聞こえるようにする必要があります。 | |
| 明瞭さと一貫性(ジェスチャー) | ジェスチャー(音声、タップ、スワイプなど)は、一般的な操作に対するユーザーの期待に沿って、明確かつ一貫した方法で実装する必要があります。コア ジェスチャー ポリシーの概要については、以降の対応するセクションをご覧ください。 | |
パフォーマンスと安定性 |
電池 | Android のバックグラウンド タスクの制限に従ってバックグラウンド プロセスを最適化し、アクティブに使用されていないときは、電力消費量の多いセンサー(カメラフィードなど)の使用を最小限に抑えます。 |
| カメラのフレームレートと解像度 | カメラフィードへのアクセスは、特定のユースケースに対して最も効率的な構成(最も低いフレームレートと解像度)を使用するように構成する必要があります。ユースケースごとの推奨構成の詳細については、デベロッパー ガイダンスをご覧ください。 | |
| 安全性 | 安全性 | エクスペリエンスは、ユーザーが開始したアクションを中心に設計し、ユーザーが周囲の状況から気をそらさないように、特に移動中や公共の場所では、ユーザーの注意をそらさないようにする必要があります。 |
| プライバシーとセキュリティ | 権限 | アプリは、投影されたリクエスト権限 API を使用して、ハードウェア アクセス(カメラやマイクなど)に関するグラス固有の権限をリクエストし、ユーザーの同意を得るためにホストデバイスへのリダイレクトを処理する必要があります。 |
全般的なポリシー |
ユーザー補助 | 多様なニーズを持つユーザーを考慮し、必要に応じて代替の入力方法(タッチパッド ジェスチャーの代替として音声コマンドを使用するなど)を利用できるようにします。 |
| テスト | Android XR エミュレータとコンポーザブル プレビューを使用して、さまざまなユーザー シナリオ、照明、混雑した環境条件で、すべてのジェスチャーとビジュアルの実装を徹底的にテストします。 | |
| Google Play | ポリシー | Google Play のすべてのポリシーを遵守してください。これには、ユーザーのプライバシーと健康を保護するための、後続のセクションに記載されているグラス固有のポリシーも含まれます。 |
オーディオ体験 |
音声アラート | 音声アラートは簡潔で、最も関連性が高く、実用的な情報のみを提供する必要があります。エラー状態の音声アラートは、インターネット接続に関係なく機能する必要があります。 フォローアップやより深い会話は、アプリ内エージェントまたは Gemini を使用して明示的に期待される必要があります。 |
| 音声フォーカス | 音声フォーカスは入力フォーカスと密接に関連しています。アプリは、Android のガイドラインに沿って、必要に応じて音声フォーカスをリクエストしたり、放棄したりする必要があります。 | |
| オーディオ ポリシー | ジェスチャーと LED の動作は、音声のみのエクスペリエンスに関するポリシーにすべて準拠している必要があります。 |
音声のみのエクスペリエンスに関するポリシー
すべてのアプリは、スマートグラスで安全かつ敬意を払った音声のみのエクスペリエンスを促進するために、以下のポリシーの要件に準拠する必要があります。
アプリの安全性
なお、Google Play で配信されるすべてのアプリは、すべての Google Play デベロッパー ポリシーに準拠している必要があります。
以下の行為は固く禁じられており、アプリはこれらの行為を助長または促進してはなりません。
- 晒し行為
- 顔認識または生体認証
- 監視
- 当人の合意なく作成された私的な状況のシナリオ・画像・動画(NCII)の作成または配布
すべてのアプリで、次の第三者保護機能が必要です。
カメラの安全性
ウェアラブル カメラセンサーにアクセスするアプリは、周囲の人のプライバシーを尊重し、以下を遵守する必要があります。
動画と写真の制限
許可される操作 |
説明 |
|---|---|
ビデオ通話 |
アプリは、ビデオ通話の目的でウェアラブル カメラセンサーを使用できます。 |
シーンの理解と環境センシング |
アプリは、周囲のカメラ センシングやシーン認識のために、ウェアラブル カメラセンサーを使用できます。 |
禁止されているやり取り |
説明 |
|---|---|
動画のソーシャル ライブ ストリーミングと一般公開での配信 |
アプリは、動画ソーシャル ライブ ストリーミング(リアルタイムの 1 対多のライブ ストリーミング、公共放送、パブリック フィードやオープン チャンネルへのキャストなど)にウェアラブル カメラセンサーを使用してはなりません。 |
リアルタイムの顔認識と個人情報の晒し行為 |
アプリは、カメラセンサーを使用して顔認識を実行し、第三者の個人を特定できる情報(PII)を収集してはなりません。(例: 氏名、自宅の住所、電話番号、勤務先)。 |
当人の合意なく作成された私的な状況のシナリオ・画像・動画(NCII)または違法なコンテンツの生成 |
アプリは、当人の合意なく作成された私的な状況のシナリオ・画像・動画(NCII)の作成や違法なコンテンツ(CSAM など)の生成を促進するためにカメラセンサーを使用してはなりません。 |
オーディオの安全性
マイク配列を利用するアプリは、第三者のプライバシーを尊重し、以下を遵守しなければなりません。
禁止されているやり取り |
説明 |
|---|---|
永続的な盗聴 |
ユーザーが開始したタスクでアプリを積極的に使用していない場合、アプリはバックグラウンドで音声の録音や文字変換を継続してはなりません。 |
音声識別 |
アプリは、マイク配列を使用して、装着者以外の声や周囲の人の声を識別してはなりません。 |
プログラムによる抑制または変更 |
アプリは、システムによって適用されるオーディオ ノイズ除去機能を変更または無効にしてはなりません。また、アプリは、音声ノイズ除去機能の変更や無効化をユーザーに促したり、指示したりしてはなりません。 |
ジェスチャーと入力
これらのポリシーは、音声のみのエクスペリエンス中にグラスでジェスチャー イベントを実装するための要件を概説しています。これらのガイドラインに沿って、さまざまなアプリや Android XR デバイスで一貫性のある直感的なユーザー エクスペリエンスを提供してください。アプリがオーディオ フォーカスを取得している場合、フォアグラウンドの状態に関係なく、すべての入力が機能することが想定されます。
1. タップ操作
タップ操作は、タッチパッドの入力エリアを 1 回すばやくタップする操作です。タップは、ユーザーがグラスでアクションを実行する方法です。これにより、ユーザーの状態に基づいて情報を提供したり、最後に聞こえたメッセージを繰り返したりするなど、音声再生を開始できます。音声が再生されている場合は、タップすると音声出力が一時停止または停止します。
例
| 許可される操作 | 説明 |
|---|---|
関連するプロンプトを再生する |
お客様に、次のような関連情報を提供します。
音声の再生中にタップすると、音声が停止します。 |
マイクをミュートする / ミュートを解除する |
マイク入力を受け取るエクスペリエンスで、ユーザーがタップ操作でマイクをミュートまたはミュート解除できるようにします。 マイクがミュートまたはミュート解除されたときに、音声フィードバックを提供する必要があります。 |
| 禁止されているやり取り | 説明 |
|---|---|
無関係な情報または広告 |
タップ操作を使用して、ユーザーの現在の身体の状態や状況に関連のない広告を配信したり、情報を提供したりしないでください。 |
ゲーム入力と高速な連続アクション |
タップ操作は、すばやいシングルタッチ操作を想定して設計されています。標準のシステム制御を妨げるインタラクティブなゲームや高頻度の入力タスク用の連続コントローラとして転用してはなりません。 |
犯罪、暴力、自傷行為を助長する |
タップ操作によって、過激主義者のスカウト、武器の作成、自傷行為など、違法行為や有害な行為を助長する実行可能な指示がトリガーされることがあってはなりません。 |
2. カメラ アクション ジェスチャー
カメラ アクション ジェスチャーでは、カメラボタンをすばやく 2 回連続で押します。カメラにアクセスするアプリは、このイベントを、センサーデータをアプリに直接提供するカメラ アクションとして扱う必要があります。
例
| 許可される操作 | 説明 |
|---|---|
アプリでカメラを有効にする |
アプリでカメラ ストリームを開始します。これには、カメラ ストリームを有効にして写真や動画を撮影することや、カメラフィードを使用してアンビエント カメラ処理を許可することが含まれます。 カメラ ストリームの使用は、カメラとマイクのキャプチャに関連するすべての Android ポリシーと、Google Play デベロッパー ポリシー センターのユーザーデータに関するポリシーに準拠する必要があります。また、いじめとハラスメントに関するポリシーでは、他者の個人情報を公開したり、他者を公に搾取したりするアプリを禁止しています。 |
| 禁止されているやり取り | 説明 |
|---|---|
カスタム入力と再マッピング |
カメラのダブルプレス ジェスチャーは、カメラ ストリームを有効にしてセンサーデータをアプリに直接提供するためにのみ使用する必要があります。このハードウェア ジェスチャーを、カメラ以外の機能、カスタム ショートカット、代替アプリ エクスペリエンスに再マッピングしてはなりません。 |
分離型またはダミーのセンサーの使用 |
カメラのダブルプレス ジェスチャーをインターセプトするアプリは、それを視覚センサーデータの正規のリクエストとして扱う必要があります。カメラフィードを意図的に無視、破棄、抑制しながら、ハードウェア ボタンをハイジャックするダブルプレス イベントを登録することはできません。 |
開示の欠如または欺瞞的な使用 |
カメラのダブルプレス ジェスチャーを使用してカメラを起動する場合は、最初の権限付与時またはアプリのセットアップ時に、モバイルアプリのフローでカメラの使用目的をユーザーに明示的に説明する必要があります。たとえば、ライブ配信、写真撮影、AI 処理などが有効なユースケースです。カメラ ストリームは、ユーザーが明示的に同意していない機能に使用してはなりません。 |
3. 1 本指で戻るスワイプ ジェスチャー
1 本指のバックスワイプ ジェスチャーでは、タッチパッドの入力領域全体で連続した戻る動作を行います。システムは、onBack() を呼び出すことで、音声のみのエクスペリエンスでもこのジェスチャーをサポートします。アプリは、現在のエクスペリエンスを終了するか、ユーザーを以前のアプリの状態に戻すことで、このイベントを処理する必要があります。
| 禁止されているやり取り | 説明 |
|---|---|
exit コマンドのハイジャック |
戻るスワイプ操作では、常に |
偽の出口(盗聴) |
このジェスチャーが呼び出されたとき、アプリはメインセンサーの使用を完全に終了または一時停止する必要があります。監視のためにバックグラウンドでアクティビティ センサーを密かに維持しながら、終了をシミュレートしないでください。 |
LED の動作
アプリは、マイクとカメラへのアクセスに基づいて LED システムの動作を変更してはなりません。
| 禁止されているやり取り | 説明 |
|---|---|
プログラムによる抑制または変更 |
アプリは、マイクとカメラへのアクセスに基づいて、システムによって適用されるワールド フェイシング LED とユーザー向け LED の動作を変更、減光、無効化してはなりません。また、LED の動作を変更、減光、無効化するようユーザーに促したり、指示したりしてはなりません。 |
妨害と改ざんの検出を回避する |
アプリは、デバイスの妨害検出アルゴリズムを回避または妨害してはならず、ユーザーにそうするよう促したり指示したりしてはなりません。このアルゴリズムは、外向きの LED が物理的に覆われたり損傷したりした場合に、プログラムによって録画を停止するように設計されています。 |