앱 작업을 위한 내장 인텐트

내장 인텐트 (BII)를 사용하면 앱에서 처리 기능을 Google에 표현할 수 있습니다. shortcuts.xml 파일에서 기능을 선언하고 인텐트 매개변수를 처리에 매핑하면 Google 어시스턴트가 쿼리에 대한 응답으로 특정 화면으로 앱을 실행할 수 있으므로 사용자가 작업을 완료할 수 있습니다.

내장 인텐트는 앱 카테고리에 따라 그룹화됩니다. 각 카테고리는 사용자가 앱에서 자주 실행하려는 일련의 일반적인 작업을 나타냅니다. 사용 가능한 BII, 매개변수, 테스트에 사용할 수 있는 쿼리 예의 전체 목록은 내장 인텐트 참조에서 확인할 수 있습니다.

많은 BII에는 특정 배포 요구사항 및 권장사항이 있습니다. 이러한 요구사항과 권장사항은 앱에서 사용자에게 가능한 최상의 환경을 제공하는 데 도움이 됩니다.

그림 1. 어시스턴트에 음성 쿼리로 START_EXERCISE BII 호출
그림 2. 앱을 특정 화면으로 실행하여 START_EXERCISE 작업 시작
그림 3. 쿼리에 대한 응답으로 위젯 표시

BII 구현 및 인텐트 매개변수 처리

앱 작업의 경우 shortcuts.xml 파일에서 기능을 선언하고 BII 매개변수를 처리합니다. BII를 구현하고 그 매개변수를 처리하려면 다음 단계를 따르세요.

  1. 선택한 BII를 사용하여 capability를 선언합니다.
  2. 추가하려는 각 BII 필드에 중첩된 parameter 요소를 추가합니다.
    1. targetClass 또는 targetPackage를 사용하는 경우 선택한 이름을 사용하여 Android 인텐트 extras에 매핑합니다.
    2. 딥 링크 URL을 사용하는 경우 URL 템플릿의 쿼리 문자열에 이름이 지정된 매개변수를 사용합니다.

BII 매개변수를 처리하려면 BII 매개변수를 capability에 있는 명시적 Android 인텐트의 상응하는 매개변수에 매핑합니다. 그런 다음 앱에서 값을 사용할 수 있습니다. 앱은 BII 매개변수를 처리할 필요가 없습니다. 그러나 내장 인텐트 참조에 '권장'으로 표시된 데이터 필드는 처리하려고 시도합니다.

각각 자체 권장 매개변수 집합이 있는 여러 인텐트 처리를 정의할 수 있습니다. Google은 사용자의 쿼리에서 식별된 기능 매개변수와 인텐트에 선언된 매개변수를 기반으로 적절한 처리를 선택합니다.

예를 들어 actions.intent.START_EXERCISE 인텐트는 앱에서 exercise.name BII 매개변수를 처리하도록 권장하지만 개발자는 매개변수 없이 앱에서 BII를 구현할 수 있습니다. 특정 운동 이름 없이 사용자 쿼리를 처리하려는 경우(예: '예시 앱에 요청하여 운동 추적을 시작')할 수 있습니다.'

다음 스니펫에는 매개변수가 사용자의 쿼리에 포함되지 않은 경우 필수 매개변수가 없는 처리로 대체됩니다.

<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">

    <capability android:name="actions.intent.START_EXERCISE">
        <intent
            android:action="android.intent.action.VIEW"
            android:targetClass="com.example.myapplication.Activity1"
            android:targetPackage="com.example.myapplication">
            <parameter
                android:name="exercise.name"
                android:key="exerciseType"
                android:required="true"
                />
        </intent>
        <intent
            android:action="android.intent.action.VIEW"
            android:targetClass="com.example.myapplication.Activity2">
        </intent>
    </capability>
</shortcuts>

Google 어시스턴트는 앱에 매개변수 값을 반환할 때 사용자에게 가장 관련성 높은 정보를 제공하기 위해 최선을 다합니다. 예를 들어 Example Restaurant 모바일 앱에서 피자를 주문하는 사용자 쿼리에 항상 위치가 포함되는 것은 아닙니다. 사용자에게 더 나은 서비스를 제공하기 위해 어시스턴트는 가장 가까운 예시 식당의 위도 및 경도 값을 해당 앱에 제공할 수 있습니다.

추가 요구사항으로, 앱이 사용자와의 작업을 먼저 확인하지 않고 직접 사용자의 실제 상태를 수정하는 작업 (예: 돈 이체, 주문, 메시지 전송)을 실행하지 않도록 해야 합니다.

명확성

<url-parameter> 또는 인텐트 추가 항목을 통해 앱에 전달된 인수는 사용자에게 표시하려는 항목을 고유하게 식별하지 않을 수 있습니다. 이 경우 인수 값을 검색 인수로 사용하고 사용자를 앱의 검색 페이지로 안내합니다. 사용자를 구별하여 올바른 항목을 선택할 수 있습니다.

예를 들어 사용자의 쿼리가 BII ORDER_MENU_ITEM에 대해 '예제 식당에서 주문'인 경우 사용자에게 "Example Restaurant" 용어와 이름이 일치하는 식당 목록을 사용자에게 표시할 수 있습니다.

언어 및 언어 지원

각 앱 작업 BII의 개발과 테스트에 지원되는 언어는 내장 인텐트 참조에 나와 있습니다. 일부 BII에는 개발자 테스트 및 어시스턴트에서의 사용자 트리거와 관련하여 다양한 언어가 지원됩니다.