시스템 음성 작업은 어시스턴트와의 통합에 더 이상 권장되지 않습니다. 빌드 대안에 관한 자세한 내용은 앱 작업 문서를 참고하세요.

시스템 음성 액션 시작하기

Google Voice Actions는 수많은 음성 및 입력한 작업 요청을 인식하고 이를 위한 Android 인텐트를 만듭니다. Play 뮤직 및 Keep과 같은 앱은 이러한 인텐트를 수신하고 요청된 작업을 실행할 수 있습니다. 앱은 다음 작업 중 일부에 관해서도 지원을 선언할 수 있습니다.

  1. 인텐트 필터 정의
  2. 앱에서 인텐트 처리
  3. 앱 완료 상태 업데이트

지원되는 시스템 작업의 자세한 목록은 시스템 작업 참조를 확인하세요.

1단계: 인텐트 필터 정의

앱이 시스템 작업을 하나 이상 지원한다는 것을 표시하려면 앱의 매니페스트 파일에 각 작업의 인텐트 필터를 포함하세요.

예를 들어 앱에서 알람을 설정할 수 있다면 매니페스트 파일에 다음 인텐트 필터를 추가합니다.

<activity ...>
    <intent-filter>
        <action android:name="android.intent.action.SET_ALARM"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

사용자가 알람 설정 인텐트를 처리할 수 있는 앱이 여러 개 있다면 Google Voice 작업을 통해 앱을 선택하여 작업을 완료할 수 있습니다.

앱을 호출하는 Google 음성 액션을 보여주는 이미지

그림 1: 음성 액션을 사용하면 사용자가 시스템 작업을 지원하는 앱에서 선택할 수 있습니다.

2단계: 앱에서 인텐트 처리

앱이 인텐트를 수신하면 작업을 실행해야 합니다. 이 예에서는 알람을 설정해야 합니다. 아래 코드 예를 참고하세요.

3단계: 앱 완료 상태 업데이트

App Indexing API를 통해 완료된 앱 활동을 Google에 전송할 수 있습니다. 그러면 Google에서 Google 앱의 쿼리 자동 완성을 통해 나중에 사용자에게 콘텐츠를 다시 표시할 수 있습니다.

앱에서 작업을 실행한 후 적절한 작업 유형(예: Action.TYPE_ADD)을 사용하여 AppIndexApi.end() 메서드를 호출합니다.

또한 적절한 작업 상태 유형을 설정하여 작업 완료 여부를 보고해야 합니다. setActionStatus 메서드를 사용하여 특정 작업의 상태를 설정할 수 있습니다.

다음은 수신 인텐트를 처리하고 App Indexing API를 사용하여 사용자가 알람을 성공적으로 설정했다고 보고하는 방법을 보여주는 완벽한 예입니다.

public class MainActivity extends Activity {

    private static final Uri ALARM_URI = Uri.parse("android-app://com.myclockapp/set_alarm_page");

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...

        // Get the intent
        Intent intent = getIntent();
        if (AlarmClock.ACTION_SET_ALARM.equals(intent.getAction())) {
            if (intent.hasExtra(AlarmClock.EXTRA_HOUR)) {
                // Step 2: get the rest of the intent extras and set an alarm
                ...
            }

            // Step 3: report the action through the App Indexing API
            Thing alarm = new Thing.Builder()
                    .setName("Alarm for 4:00 PM")
                    .setDescription("Alarm set for 4:00 PM, with the 'Argon' ringtone"
                                    + " and vibrate turned on.")
                    .setUrl(APP_URI)
                    .build();

            Action setAlarmAction = new Action.Builder(Action.TYPE_ADD)
                    .setObject(alarm)
                    .setActionStatus(Action.STATUS_TYPE_COMPLETED)
                    .build();

            AppIndex.AppIndexApi.end(mClient, setAlarmAction);
        }
    }

    ...

}

시스템 작업 참조

Google Voice Actions는 다음 표에 나열된 작업을 인식하면 인텐트를 실행합니다.

경보 작업

작업 예시 명령어
알람 설정 오전 6시에 알람 설정
타이머 설정 5분 타이머 설정

커뮤니케이션 작업

작업 예시 명령어
전화 통화 시작하기 555-5555번으로 전화 걸기
엄마한테 전화 걸어 줘
엄마한테 전화해 줘
음성사서함에 전화 걸어 줘

통화 작업은 다이얼러가 내장된 기기 (예: 휴대전화)와 전화 걸기를 지원하는 앱이 있는 기기 (예: VoIP 앱이 설치된 태블릿)에서만 트리거됩니다.

피트니스 작업

작업 예시 명령어
자전거 타기 시작/중지 자전거 타기 시작
달리기 시작/중지 달리기 시작
운동 시작/중지 운동 시작
심박수 표시 심박수 표시
걸음 수 표시 걸음 수 표시

오프라인 액션

작업 예시 명령어
택시 예약 택시 예약

택시 예약 작업은 Android Wear에서만 실행됩니다.

미디어 작업

작업 예시 명령어
검색에서 음악 재생 마이클 잭슨 빌리 청 재생하기
음악 재생
클래식 음악 재생
벽에서 떨어지기
vnstreamer에서 분홍색 플로이드 재생
사진 찍기 사진 촬영
동영상 녹화 동영상 녹화

작업 열기

작업 예시 명령어
URL 열기 twitter.com 열기
애플리케이션 열기 Twitter 열기(기본적으로 작동하며 특정 인텐트 없음)

생산성 작업

작업 예시 명령어
메모 작성하기 장보기

검색 작업

작업 예시 명령어
특정 앱을 사용하여 검색하기 YouTube에서 고양이 동영상 검색해 줘