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 ${인텐트명}
항목 | 설명 |
---|---|
인텐트명 | Intent Action 목록에서 선택 |
패키지명 | 개발 Phase 정의 단계에서 생성한 패키지명 입력 |
ContentProvider 사용하기
ContentProvider에서 다음의 Content URI를 사용할 수 있습니다.
표Content URIContent 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 ActionIntent 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 사용 비활성화
com.kakao.i.agent.KAKAO_I_CONTINUE
com.kakao.i.agent.KAKAO_I_STOP 호출로 중단된 카카오 i 서비스를 다시 시작합니다. 이는 카카오 i 설정에서 카카오 i 사용을 활성화 하는 것과 동일한 동작입니다.
그림카카오 i 사용 활성화
com.kakao.i.agent.SHOW_SETTINGS
카카오 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
[플로팅 마이크] 버튼을 다시 보이게 합니다.