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=Googleplexgeo:0,0?q=1600+Amphitheatre+parkway&mode=b&intent=add_a_stopgeo:0,0?q=coffee+shop&mode=w&intent=navigationgeo: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- drivex- 택시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_crash는 accident_type 및 road_direction 키를 추가로 지원합니다.
accident_type 키는 minor 및 major의 두 값을 지원할 수 있습니다.
가능한 값
표에는 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 자동차 서비스를 사용하여 탐색 메타데이터를 제공해야 합니다. 구현 안내는 탐색 메타데이터 통신을 참고하세요.