내비게이션 앱 인텐트 구현

Google 어시스턴트는 내비게이션 앱에서 지원할 수 있는 세 가지 인텐트 형식을 사용합니다. 앱의 매니페스트에서 이 페이지에 설명된 인텐트 필터를 선언하여 상호 운용성을 달성하고 앱과 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>

제공된 매개변수

다음 매개변수는 제공된 내비게이션 앱 인텐트 데이터에서 사용할 수 있습니다.

위치 쿼리 또는 지리적 좌표

모든 탐색 인텐트 쿼리에는 요청된 데이터 유형에 따라 다음 매개변수 중 하나 또는 둘 다 포함됩니다.

  • 위치 쿼리

    사용자가 이동하려는 위치를 나타냅니다. 이 데이터를 사용하여 사용자의 대상을 확인합니다.

    매개변수 키: 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 해석: 사용자가 현재 좌표 [47.6, -122.2]를 사용하여 Bellevue Square, Bellevue에 정류장을 추가하려고 합니다.

제외

탐색에서 피해야 할 항목을 정의합니다.

매개변수 키: avoid
사용 가능한 값:

  • f - 페리
  • 고속도로 h
  • t - 통행료

예: geo:0,0?q=googleplex&avoid=tf
해석: 사용자가 통행료와 페리를 피하면서 Googleplex로 이동하려고 합니다.

이동수단

이동 모드는 사용자가 쿼리에서 지정한 교통수단을 나타냅니다.

매개변수 키: mode
사용 가능한 값:

  • b - 자전거
  • d - drive
  • 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
    해석: 사용자가 현재 탐색을 종료하려고 합니다.

추천 앱 동작: 내비게이션 앱에서 요청된 작업을 실행하거나 지원되지 않는 작업 메시지를 표시합니다.

다음 그림은 응답 쿼리의 키-값 쌍의 예를 보여줍니다.

맞춤 작업 인텐트 데이터 흐름

그림 2. 맞춤 작업 인텐트 데이터 흐름

키-값 쌍:

"act": "report_crash"
"road_direction": other_side"

모든 맞춤 작업에는 항상 act 매개변수가 키로 사용됩니다. 위의 예시 코드에서 일부 작업에는 추가 키-값 쌍이 있을 수 있습니다. 예를 들어 act=report_crashaccident_typeroad_direction 키를 추가로 지원합니다.

accident_typeminormajor라는 두 가지 값을 지원할 수 있습니다.

가능한 값

이 표에는 Google 어시스턴트가 사용자가 내비게이션 앱에서 수행하려는 작업으로 전달할 수 있는 값이 나와 있습니다.

설명 선택적 매개변수 키 선택적 매개변수 값
allow_ferries 페리를 허용하도록 경로 환경설정을 변경합니다.
allow_highways 고속도로를 허용하도록 경로 환경설정을 변경합니다.
allow_tolls 통행료를 허용하도록 경로 환경설정을 변경합니다.
apply_electric_vehicle_connector_filter 차량의 커넥터와 일치하는 전기자동차 충전소만 표시합니다.
apply_electric_vehicle_fast_charging_filter 급속 충전소인 전기자동차 충전소만 표시합니다.
apply_electric_vehicle_payment_filter 요금이 청구되는 전기자동차 충전소만 표시합니다.
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 차량의 커넥터와 일치하는 전기자동차 충전소 필터를 삭제합니다.
remove_electric_vehicle_fast_charging_filter 급속 충전소인 전기자동차 충전소의 필터링을 삭제합니다.
remove_electric_vehicle_payment_filter 결제가 필요한 전기자동차 충전소 위치의 필터링을 삭제합니다.
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 음성 안내 음소거를 해제합니다.