Google アシスタントは、ナビゲーション アプリがサポートできる 3 種類のインテントを使用します。相互運用性を実現し、アプリと Google アシスタントを統合するには、このページで説明するインテント フィルタをアプリのマニフェストで宣言します。インテントの詳細については、Intent
をご覧ください。
アシスタント ナビゲーション アプリの Intent
クラスは、次のインテントをサポートしています。
- ナビゲーション インテント
- 検索目的
- カスタム アクション インテント
図 1. インテント データフロー。
インテント データのパラメータ
インテント データは、渡すインテントに基づくパラメータを含む URI 形式に従います。一部のパラメータは、常にデータで指定されます。つまり、常に明示的な値が設定されていると想定できます。ただし、オプション パラメータにデータで値が設定されているとは限りません。詳細については、データテストをご覧ください。
オフライン インテント
このページに記載されているすべてのインテントには、オフライン バリアントが用意されています。これらを区別するには、スキームに .offline
を追加します。たとえば、ナビゲーション インテントでは geo.offline
スキームが使用されます。マニフェスト内のこれらのインテント フィルタは、アプリがこれらのアクションをオフラインでサポートできることを示します。
ナビゲーション インテント
ナビゲーション インテントを使用して、特定のデスティネーションに移動するユーザーのリクエストを処理します。このデスティネーションには、単一の場所(住所)または複数の場所(コーヒーショップやガソリンスタンドなど)を指定できます。インテントデータは、各インテントに対して指定された URI 形式に従います。
インテント フォーマット
Intent
クラスは、ナビゲーション アプリのインテントに次の形式を使用します。
カテゴリ: android.intent.category.DEFAULT
アクション:
- Android Auto と Android Automotive OS:
androidx.car.app.action.NAVIGATE
- その他のフォーム ファクタ:
android.intent.action.NAVIGATE
スキーム: geo
例:
geo:0,0?q=Googleplex
geo:0,0?q=1600+Amphitheatre+parkway&mode=b&intent=add_a_stop
geo:0,0?q=coffee+shop&mode=w&intent=navigation
geo:1.1,2.2?q=Starbucks+on+Main+Street&mode=w&intent=navigation
推奨されるアプリの動作: 指定した場所へのナビゲーションが開始されるか、ユーザーに複数のオプションから選択するよう求められます。
マニフェストのインテント フィルタ
ナビゲーション アプリがナビゲーション インテントを受信できることを Google アシスタントに通知するには、アプリのマニフェスト ファイルで次のインテント形式を宣言します。
Android Auto と Android Automotive OS を除くすべてのフォーム ファクタ:
<intent-filter>
<action android:name="android.intent.action.NAVIGATE" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo" />
</intent-filter>
Android Auto と Android Automotive OS:
<intent-filter>
<action android:name="androidx.car.app.action.NAVIGATE" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo" />
</intent-filter>
指定されたパラメータ
提供されるナビゲーション アプリのインテント データでは、次のパラメータを使用できます。
位置情報クエリまたは地理座標
すべてのナビゲーション インテント クエリには、リクエストされたデータの種類に応じて、次のパラメータの 1 つまたは両方が含まれます。
位置情報クエリ
ユーザーがナビゲートしようとしている場所を指します。このデータを使用して、ユーザーの宛先を解決します。
パラメータキー:
q
値: ユーザーがクエリした目的地。例:
geo:0,0?q=Golden+Gate+Bridge
解釈: ユーザーは ゴールデン ゲート ブリッジに移動しようとしています。地理座標(緯度と経度)
ユーザーがナビゲーションに使用する特定の座標を指します。
パラメータキー:
geo:lat,long
値: ユーザーがクエリした座標。例:
geo:1.1,2.2?mode=w&intent=navigation
解釈: ユーザーは座標(1.1、2.2)に移動することを希望しています。
省略可能なパラメータ
このセクションでは、ナビゲーション アプリのインテント データで指定するオプション パラメータについて説明します。
インテント
ユーザーの意図を定義します。このパラメータが設定されていない場合、デフォルトのユーザー インテントは navigation
とみなされます。
パラメータキー: intent
有効な値:
navigation
[デフォルト値] - 目的地を置き換えてナビゲーションを開始します。「x に移動」などのクエリに使用します。add_a_stop
- 前の目的地とともに、その停留所を次の目的地として追加します。「x に停留所を追加」などのクエリに使用します。directions
- ナビを開始せずにルート案内を表示します。「x へのルート」などのクエリに使用します。
例: geo:47.61594547836694,-122.20373173098756?q=575+Bellevue+Square,+Bellevue,+WA+98004&intent=add_a_stop
解釈: ユーザーは、Bellevue Square、Bellevue に停留所を追加したいと考えています。現在の座標は [47.6, -122.2] です。
不使用
ナビゲーションで避けるべきことを定義します。
パラメータキー: avoid
有効な値:
f
- フェリーh
- 高速道路t
- 有料道路
例: geo:0,0?q=googleplex&avoid=tf
解釈: ユーザーは通行料とフェリーを避けて Googleplex にナビを設定したいと考えています。
移動手段
移動モードは、ユーザーがクエリで指定した交通手段を表します。
パラメータキー: mode
有効な値:
b
- 自転車d
- ドライブx
- タクシーl
- オートバイr
- 交通機関w
- 徒歩
例: geo:0,0?q=Googleplex&mode=r
解釈: ユーザーは公共交通機関を使って Googleplex に移動したいと考えています。
エントリ
エントリのソースをロギングするために使用されます。
有効な値: アシスタント
例: geo:47.61594547836694,-122.20373173098756?entry=assistant
検索目的
検索インテントを使用してクエリを検索し、運転中にルート沿いに複数の結果を表示します。
インテント フォーマット
Intent
クラスは、検索インテントに対して次の形式を使用します。
カテゴリ: android.intent.category.DEFAULT
アクション: android.intent.action.VIEW
スキーム: geo
例: geo:0,0?q=restaurants+nearby
推奨されるアプリの動作: ユーザーのクエリに一致する場所のリストを表示します。
マニフェストのインテント フィルタ
ナビゲーション アプリが検索インテントを受信できることを Google アシスタントに通知するため、アプリのマニフェスト ファイルで次のインテント形式を宣言します。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo" />
</intent-filter>
指定されたパラメータ
提供される検索インテント データでは、次のパラメータを使用できると想定されています。
位置情報クエリ
位置情報クエリとは、ユーザーが運転中に検索している場所です。このクエリは不正確な場合や、アクティブなナビゲーション ルート上にある場合があります。
パラメータキー: q
値: ユーザーの検索語句。コーヒーショップや大学などの場所の種類にすることもできますが、-near me や-with best rating などの修飾子を含めることもできます。
例: geo:0,0?q=restaurants+nearby
解釈: ユーザーは近くのレストランを検索したいと考えています。
カスタム アクション インテント
カスタム アクション(事故の報告やナビゲーションの終了など)にはカスタム インテントを使用します。メイン アクション タイプは、act
クエリ パラメータで定義されます。アクションの種類に応じて、追加のパラメータを設定できます。
インテント フォーマット
Intent
クラスでは、カスタム アクション インテントに次の形式を使用します。
カテゴリ: android.intent.category.DEFAULT
アクション: android.intent.action.VIEW
スキーム: geo.action
例: geo.action:?act=report&accident_type=major
マニフェストのインテント フィルタ
ナビゲーション アプリがカスタム アクション インテントを受信できることを Google アシスタントに通知するには、アプリのマニフェスト ファイルで次のインテント形式を宣言します。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="geo.action" />
</intent-filter>
指定されたパラメータ
提供されるカスタム アクションのインテント データでは、次のパラメータを使用できます。
アクション タイプ
ユーザーが実行するカスタム アクションのタイプを定義します。
パラメータキー: act
例:
geo.action:?act=report_crash&accident_type=major
解釈: ユーザーは重大な事故を報告したいと考えています。geo.action:?act=mute
解釈: お客様は音声指示をミュートしたいと考えています。geo.action:?act=exit_navigation
解釈: ユーザーは現在のナビゲーションを終了したいと考えています。
推奨されるアプリの動作: ナビゲーション アプリでリクエストされたアクションを実行するか、サポートされていないアクション メッセージを表示します。
次の図は、レスポンス クエリの Key-Value ペアの例を示しています。
図 2. カスタム アクション インテントのデータフロー。
Key-Value ペア:
"act": "report_crash"
"road_direction": other_side"
すべてのカスタム アクションには、常に act
パラメータがキーとして設定されます。上記のコード例では、一部のアクションに追加の Key-Value ペアを指定できます。たとえば、act=report_crash
は accident_type
と road_direction
の追加キーをサポートしています。
キー accident_type
は、minor
と major
の 2 つの値をサポートできます。
有効な値
次の表に、ユーザーがナビゲーション アプリで実行しようとしているアクションとして Google アシスタントが渡すことができる値を示します。
値 | 説明 | 省略可能なパラメータキー | 省略可能なパラメータ値 |
---|---|---|---|
allow_ferries
|
フェリーを許可するようにルート設定を変更します。 | ||
allow_highways
|
高速道路を許可するようにルート設定を変更します。 | ||
allow_tolls
|
ルートの設定を変更して、通行料を許可します。 | ||
apply_electric_vehicle_connector_filter
|
車のコネクタに対応した電気自動車の充電スタンドのみを表示します。 | ||
apply_electric_vehicle_fast_charging_filter
|
急速充電器がある EV 充電スタンドのみを表示します。 | ||
apply_electric_vehicle_payment_filter
|
支払いが必要となる EV 充電スタンドの場所のみを表示します。 | ||
avoid_ferries
|
フェリーを避けるようにルート設定を変更します。 | ||
avoid_highways
|
高速道路を避けるようにルート設定を変更します。 | ||
avoid_tolls
|
有料道路を回避するようにルート設定を変更します。 | ||
clear_search_results
|
地図上の検索結果を消去します。 | ||
distance_to_destination
|
目的地までの距離を表示します。 | ||
distance_to_next_turn
|
次の曲がり角までの距離を表示します。 | ||
eta
|
目的地までの所要時間を表示します。 | ||
exit_navigation
|
ナビを終了またはキャンセルします。 | ||
follow_mode
|
地図ビューをフォローモードに変更します。 | ||
go_back
|
前の地図操作に戻る。 | ||
hide_satellite
|
地図の設定を変更して、航空写真情報を非表示にします。 | ||
hide_traffic
|
地図の設定を変更して、交通情報を非表示にします。 | ||
mute
|
音声案内をミュートします。 | ||
query_current_road
|
ユーザーが現在走行している道路を表示します。 | ||
query_destination
|
リンク先を表示します。 | ||
query_next_turn
|
次のターンを表示します。 | ||
remove_electric_vehicle_connector_filter
|
車のコネクタに一致する EV 充電スタンドのフィルタを削除。 | ||
remove_electric_vehicle_fast_charging_filter
|
急速充電器である EV 充電場所のフィルタを削除。 | ||
remove_electric_vehicle_payment_filter
|
料金が必要な EV 充電スタンドのフィルタを削除。 | ||
report_crash
|
クラッシュを報告します。 | accident_type
|
minor
|
major
|
|||
road_direction
|
this_side
|
||
other_side
|
|||
report_hazard
|
危険を報告します。 | hazard_type
|
animal
|
broken_traffic_light
|
|||
construction
|
|||
flooding
|
|||
fog
|
|||
hail
|
|||
ice
|
|||
missing_sign
|
|||
object_on_road
|
|||
pothole
|
|||
roadkill
|
|||
snow
|
|||
vehicle
|
|||
weather
|
|||
road_direction
|
this_side
|
||
other_side
|
|||
location_on_road
|
on_road
|
||
on_shoulder
|
|||
report_police
|
警察活動を報告します。 | road_direction
|
this_side
|
other_side
|
|||
report_road_closure
|
通行止めを報告します。 | road_closure_type
|
partial
|
full
|
|||
report_traffic
|
交通情報を報告します。 | traffic_type
|
moderate
|
heavy
|
|||
standstill
|
|||
road_direction
|
this_side
|
||
other_side
|
|||
resume_navigation
|
ナビを再開します。 | ||
route_overview
|
ルートの概要を表示します。 | ||
show_alternates
|
別のルートを表示します。 | ||
show_directions_list
|
ターンバイターン方式のルート案内を表示します。 | ||
show_satellite
|
地図に衛星情報を表示します。 | ||
show_traffic
|
地図に交通状況を表示します。 | ||
time_to_destination
|
目的地までの所要時間を表示します。 | ||
time_to_next_turn
|
次の曲がり角までの所要時間を表示します。 | ||
unmute
|
音声案内のミュートを解除します。 |