Kakao i Agent SDK::Wallpad::개발 프로세스::SDK 제어

페이지 이동경로

SDK 제어

SDK를 제어하는 방법에는, 동작에 따라 AgentService를 호출하여 Intent Action을 전달하거나 Content Provider의 Content URI를 사용하는 방법이 있습니다.

AgentService 호출하기

Agent 공통 호출

AgentService 호출 시 사용되는 공통 호출 형식은 다음과 같습니다.

코드예제AgentService 공통 호출 형식

val intent = Intent("${인텐트명}")
intent.setPackage("${패키지명}")
ContextCompat.startForegroundService(this, intent)

공통 호출 형식
항목 설명
인텐트명 Intent Action 목록에서 선택
패키지명 개발 Phase 정의 단계에서 생성한 패키지명 입력

ADB 인텐트 호출

ADB(Android Debug Bridge)를 통한 인텐트 호출 예제 형식은 다음과 같습니다.

코드예제ADB 인텐트 호출

adb shell am startservice -n ${패키지명}/${패키지명}.AgentService -a ${인텐트명}

ADB 호출 형식
항목 설명
인텐트명 Intent Action 목록에서 선택
패키지명 개발 Phase 정의 단계에서 생성한 패키지명 입력

ContentProvider 사용하기

ContentProvider에서 다음의 Content URI를 사용할 수 있습니다.

Content URI
Content URI 설명
content://com.kakao.i.sdk.agent/KakaoiEnable 카카오 i 활성화 상태 확인
content://com.kakao.i.sdk.agent/wakeWord 현재의 호출명령어(Wake-up Word) 확인

Sample Code

ContentProvider에서 Content URI를 사용한 샘플 코드는 다음과 같습니다.

코드예제Content URI

    fun isKakaoiEnable() {
        val data = getCPData("KakaoiEnable")
    }

    fun getWakeWord() {
        val data = getCPData("wakeWord")
    }

    private fun getCPData(name: String): String? {
        val cursor = contentResolver.query(
            Uri.parse("content://com.kakao.i.sdk.agent/$name"),
            null, null, null, null
        ) ?: return null

        var data: String? = null

        while (cursor.moveToNext()) {
            val id = cursor.getInt(0)
            val name = cursor.getString(1)
            data = cursor.getString(2)

            Timber.d("cursor = $id, $name, $data")
        }
        cursor.close()
        return data
    }

Intent Action 목록

AgentService에서 호출할 수 있는 Intent Action 목록은 다음과 같습니다.

Intent Action
Intent Action 설명
com.kakao.i.agent.KAKAO_I_STOP 카카오 i 음성 인식 서비스를 중단
- 카카오 i 음성 인식 서비스의 재시작을 위해서는 com.kakao.i.agent.KAKAO_I_CONTINUE 호출 필요
com.kakao.i.agent.KAKAO_I_CONTINUE 음성 서비스 재시작
com.kakao.i.agent.SHOW_SETTINGS 카카오 i 설정화면 보기
com.kakao.i.agent.HIDE_SETTINGS 카카오 i 설정화면 닫기
com.kakao.i.agent.SHOW_PLAYER Player 화면 보기
com.kakao.i.agent.REQUEST_RECOGNITION 음성 인식 상태 전환
com.kakao.i.agent.DISABLE_WAKEUP 호출명령어 사용 기능을 끔
- 기본값: 호출명령어를 사용
com.kakao.i.agent.ENABLE_WAKEUP 호출명령어 사용 기능을 켬
com.kakao.i.agent.CLEAR_DATA 계정을 초기화
com.kakao.i.agent.CLOSE_DIALOG Kakao i View Template 화면 닫음
com.kakao.i.agent.SHOW_ALARM_SETTINGS 알람 설정화면을 띄우기
com.kakao.i.agent.HIDE_ALARM_SETTINGS 알람 설정화면을 닫기
com.kakao.i.agent.ALARM_CLOSE 알람 알림 화면 종료
com.kakao.i.agent.LOCK_ALARM_DIALOG 알람 기능 중단
com.kakao.i.agent.UNLOCK_ALARM_DIALOG 알람 기능 재개
com.kakao.i.agent.MIC_BUTTON_HIDE 플로팅 마이크 버튼을 숨김
- 기본값: 플로팅 마이크 버튼을 표시
com.kakao.i.agent.MIC_BUTTON_SHOW 플로팅 마이크 버튼을 표시

com.kakao.i.agent.KAKAO_I_STOP

카카오 i 음성 인식 서비스를 중단합니다. 이는 카카오 i 설정에서 카카오 i 사용을 비활성하는 것과 동일한 동작입니다. 이 Intent를 호출한 이후 다시 카카오 i 음성 인식 서비스를 사용하기 위해서는 반드시 com.kakao.i.agent.KAKAO_I_CONTINUE를 호출해야 합니다.

카카오 i 사용 비활성화 그림카카오 i 사용 비활성화

com.kakao.i.agent.KAKAO_I_CONTINUE

com.kakao.i.agent.KAKAO_I_STOP 호출로 중단된 카카오 i 서비스를 다시 시작합니다. 이는 카카오 i 설정에서 카카오 i 사용을 활성화 하는 것과 동일한 동작입니다.

카카오 i 사용 활성화 그림카카오 i 사용 활성화

com.kakao.i.agent.SHOW_SETTINGS

카카오 i 설정 화면을 띄웁니다.

카카오 i 설정 화면 그림카카오 i 설정 화면

com.kakao.i.agent.HIDE_SETTINGS

카카오 i 설정화면을 닫습니다.

com.kakao.i.agent.SHOW_PLAYER

플레이어 화면을 보여줍니다.

com.kakao.i.agent.REQUEST_RECOGNITION

음성인식 상태 화면으로 전환합니다. 플로팅 마이크 버튼을 클릭하거나 호출명령어(Wake-up Word)를 호출할 때와 동일한 화면을 띄웁니다.

음성인식 상태 그림음성인식 상태

com.kakao.i.agent.DISABLE_WAKEUP

호출명령어를 사용하지 않고, [플로팅 마이크] 버튼을 통해서만 음성인식을 할 수 있도록 설정합니다. 카카오 i 설정에서 호출명령어 사용 옵션을 비활성하는 것과 동일한 동작입니다.

호출명령어 사용 비활성화 그림호출명령어 사용 비활성화

com.kakao.i.agent.ENABLE_WAKEUP

호출명령어 사용 기능을 활성화 할 수 있습니다. 카카오 i 설정에서 호출명령어 사용 옵션을 활성화(Enable) 하는 것과 동일한 동작입니다.
- 기본값은 비활성(Disable) 입니다.

호출명령어 사용 활성화 그림호출명령어 사용 활성화

com.kakao.i.agent.CLEAR_DATA

계정 데이터를 초기화 합니다.

com.kakao.i.agent.CLOSE_DIALOG

Kakao i View Template 화면을 닫습니다.

com.kakao.i.agent.SHOW_ALARM_SETTINGS

알람 설정 화면을 띄웁니다.

알람 설정 그림알람 설정

com.kakao.i.agent.HIDE_ALARM_SETTINGS

알람 설정 화면을 닫습니다.

com.kakao.i.agent.ALARM_CLOSE

알람 또는 타이머가 울렸을 때 생성되는 팝업창을 닫습니다. 아래 이미지에서 [알람 종료] 버튼을 눌렀을 때와 동일한 동작입니다.

[알람 종료] 버튼 그림[알람 종료] 버튼

com.kakao.i.agent.LOCK_ALARM_DIALOG

알람 기능을 중단합니다.

com.kakao.i.agent.UNLOCK_ALARM_DIALOG

com.kakao.i.agent.LOCK_ALARM_DIALOG으로 중단된 알람 기능을 다시 동작시킵니다.

com.kakao.i.agent.MIC_BUTTON_HIDE

[플로팅 마이크] 버튼을 숨깁니다.

com.kakao.i.agent.MIC_BUTTON_SHOW

[플로팅 마이크] 버튼을 다시 보이게 합니다.

이 문서가 만족스러운 이유를 알려주세요.
이 문서에 아쉬운 점을 알려주세요.
평가해주셔서 감사합니다.

더 자세한 의견은 contact.dkt@kakaocorp.com 으로 제보해주세요.