내비게이션 앱 인텐트 구현

Gemini는 내비게이션 앱에서 지원할 수 있는 세 가지 형식의 인텐트를 사용합니다. 앱의 매니페스트에서 이 페이지에 자세히 설명된 인텐트 필터를 선언하여 상호 운용성을 달성하고 앱과 Gemini를 통합할 수 있습니다. 인텐트에 대해 자세히 알아보려면 Intent를 참고하세요.

Gemini 탐색 앱 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

추천 앱 동작: 지정된 위치로의 탐색이 시작되거나 사용자에게 여러 옵션 중에서 선택하라는 메시지가 표시됩니다.

매니페스트 인텐트 필터

Gemini가 내비게이션 앱이 내비게이션 인텐트를 수신할 수 있음을 알 수 있도록 앱의 매니페스트 파일에서 다음 인텐트 형식을 선언합니다.

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]를 사용하여 벨뷰, 벨뷰 스퀘어에 정차 지점을 추가하려고 합니다.

제외

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

매개변수 키: 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로 이동하기를 원합니다.

Entry

입력 소스를 로깅하는 데 사용됩니다.

가능한 값: assistant

예: geo:47.61594547836694,-122.20373173098756?entry=assistant

검색 의도

검색 의도를 사용하여 운전 중에 경로를 따라 검색어를 검색하고 여러 결과를 표시합니다.

의도 형식

Intent 클래스는 검색 인텐트에 다음 형식을 사용합니다.

카테고리: android.intent.category.DEFAULT

작업: android.intent.action.VIEW

스키마: geo

예: geo:0,0?q=restaurants+nearby

추천 앱 동작: 사용자 쿼리에 맞는 위치 목록을 엽니다.

매니페스트 인텐트 필터

Gemini가 내비게이션 앱이 검색 인텐트를 수신할 수 있음을 알 수 있도록 앱의 매니페스트 파일에서 다음 인텐트 형식을 선언합니다.

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT"/>
  <data android:scheme="geo" />
</intent-filter>

제공된 매개변수

다음 매개변수는 제공된 검색 인텐트 데이터에서 사용할 수 있어야 합니다.

위치 쿼리

위치 쿼리는 운전 중에 사용자가 검색하는 위치입니다. 이 쿼리는 부정확하거나 활성 탐색 경로를 따라갈 수 있습니다.

매개변수 키: q
값: 사용자의 검색어입니다. 카페 또는 대학과 같은 위치 유형일 수도 있지만 -내 주변 또는 -평점이 가장 높은과 같은 수량자가 있을 수도 있습니다.

예: 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

매니페스트 인텐트 필터

앱의 매니페스트 파일에서 다음 인텐트 형식을 선언하여 Gemini가 탐색 앱이 맞춤 작업 인텐트를 수신할 수 있음을 알 수 있도록 합니다.

<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_type 키는 minormajor의 두 값을 지원할 수 있습니다.

가능한 값

표에는 Gemini가 사용자가 내비게이션 앱에서 수행하려고 하는 작업으로 전달할 수 있는 값이 나열되어 있습니다.

설명 선택적 매개변수 키 선택적 매개변수 값
allow_ferries 경로 환경설정을 변경하여 페리를 허용합니다.
allow_highways 고속도로를 허용하도록 경로 환경설정을 변경합니다.
allow_tolls 통행료를 허용하도록 경로 환경설정을 변경합니다.
avoid_ferries 경로 환경설정을 변경하여 페리를 피하세요.
avoid_highways 고속도로를 피하도록 경로 환경설정을 변경합니다.
avoid_tolls 통행료를 피하도록 경로 환경설정을 변경합니다.
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 다음 턴을 표시합니다.
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
route_overview 전체 경로를 표시합니다.
show_alternates 대체 경로 보여 줘
show_directions_list 세부 경로 안내를 표시합니다.
show_satellite 지도에 위성 정보를 표시합니다.
show_traffic 지도에 교통정보를 표시합니다.
time_to_destination 목적지까지의 예상 도착 시간을 표시합니다.
time_to_next_turn 다음 회전 지점까지의 예상 도착 시간 표시
unmute 음성 안내 음소거 해제

탐색 상태 가져오기

사용자가 여행 상태에 관해 질문할 때 Gemini가 정확한 실시간 정보를 제공할 수 있도록 앱은 NavigationManager 자동차 서비스를 사용하여 탐색 메타데이터를 제공해야 합니다. 구현 안내는 탐색 메타데이터 통신을 참고하세요.