바로가기에 기능 추가

shortcuts.xml의 기능을 사용하면 사용자가 앱을 실행하고 특정 작업을 직접 실행하기 위해 취할 수 있는 작업의 유형을 선언할 수 있습니다. 기능은 작업 이름과 사용자 의도를 해결하는 앱의 대상을 타겟팅하는 intent로 구성됩니다.

shortcuts.xml에서 기능 정의하기

Android 앱 개발 프로젝트의 shortcuts.xml 리소스 파일에서 capability 요소를 정의할 수 있습니다. capability 요소를 정의하려면 다음을 수행합니다.

  1. 정적 바로가기 만들기의 안내에 따라 shortcuts.xml 리소스를 만듭니다.
  2. 기능에 다음 필수 정보를 포함합니다.

    • 기능 이름: 앱에서 지원하려는 작업입니다. 기능 정의가 필요한 기능에 대해서는 구성요소 문서를 참조하세요.

    • 앱 대상: 사용자 요청을 처리하기 위해 작업이 실행되는 앱의 대상입니다. capability 내에 중첩된 intent 요소를 사용하여 앱 대상을 정의합니다.

    • 매개변수 매핑: 각 intent에는 인텐트의 extra 데이터로 전달할 매개변수가 포함될 수 있습니다.

다음 예는 사용자가 어시스턴트와 함께 음성 명령을 사용하여 피트니스 앱에서 운동을 시작할 수 있는 BII인 actions.intent.START_EXERCISE의 shortcuts.xml에 있는 기능 정의를 보여줍니다.

<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:targetPackage="com.example.sampleApp"
      android:targetClass="com.example.sampleApp.ExerciseActivity">
      <parameter
        android:name="exercise.name"
        android:key="exerciseType"/>
    </intent>
  </capability>
</shortcuts>

앞에 나온 예에서 <capability> android:name 속성은 START_EXERCISE BII를 가리킵니다. 사용자가 어시스턴트에게 "Hey Google, ExampleApp에서 달리기 시작해 줘"라고 요청하여 이 BII를 호출하면 어시스턴트는 중첩된 intent 요소에 제공된 정보를 사용하여 사용자 요청을 처리합니다. 이 샘플의 intent는 다음 세부정보를 정의합니다.

  • android:targetPackage는 이 인텐트의 타겟 애플리케이션 패키지를 설정합니다.
  • android:targetClass 필드는 대상 활동 com.example.sampleApp.ExerciseActivity를 지정합니다.
  • 인텐트 parameter는 BII 파라미터 exercise.name에 대한 지원과 사용자로부터 수집된 파라미터 값을 intent의 추가 데이터로 전달하는 방법을 선언합니다.

바로가기에 기능 연결하기

기능을 정의한 후에는 정적 또는 동적 바로가기를 연결하여 기능을 확장할 수 있습니다. 바로가기가 capability에 연결되는 방식은 구현되는 기능과 사용자의 요청에 포함된 실제 단어에 따라 다릅니다. 예를 들어 사용자가 어시스턴트에게 "Hey Google, ExampleApp에서 달리기 시작해 줘"라고 요청하여 피트니스 트래커 앱에서 달리기를 시작하는 경우입니다. 어시스턴트는 바로가기를 사용하여 exercise.name 매개변수에 유효한 운동 항목 'run'을 정의하는 capability 인스턴스를 실행할 수 있습니다.