내비게이션 앱 인텐트 구현

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 음성 안내 음소거를 해제합니다.