콘텐츠로 이동
실시간 타겟팅 (X)

직접 연동하기 (start / stop)

법적 동의를 직접 관리하는 고객사를 위한 연동 (동의 자체 관리형 · ConsentNone)

STEP 1) 앱 시작 시점에 init 호출하기

섹션 제목: “STEP 1) 앱 시작 시점에 init 호출하기”

Application#onCreate 에서 init 을 호출합니다. init 은 SDK 기본 초기화를 수행하고, 인식 서비스가 비정상 종료됐던 경우(사용자의 앱 강제 종료 등) 서비스를 자동으로 재시작합니다.

class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
val moment = MomentSDK.getInstance(this)
moment.init(
config,
object : MomentSDK.RestartResultCallback {
override fun onSuccess(resultCode: MomentSDK.RestartResultCode) {
if (resultCode == MomentSDK.RestartResultCode.SERVICE_RESTARTED) {
// 인식 서비스가 재시작되었습니다.
}
}
override fun onFailure(exception: MomentException) {
// 초기화/재시작에 실패했습니다.
}
}
)
}
}

필요 권한 1: 사용정보 접근 (PACKAGE_USAGE_STATS)

인식 서비스를 시작하기 위해서는 사용자에게 사용정보 접근 허용 권한을 요청해야 합니다. 아래 예시 코드를 통해 권한을 요청할 수 있습니다. (참고: 스타터 예시)

val appUsagePermissionLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
if (MomentSDK.isAppUsagePermissionGranted(requireContext())) {
// 권한 획득 성공
} else {
// 권한 획득 실패
}
}
val intent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.data = Uri.fromParts("package", packageName, null)
appUsagePermissionLauncher.launch(intent)

필요 권한 2: 알림 권한 (POST_NOTIFICATIONS)

법적 동의가 완료된 사용자에 한해 start(config, callback) 를 호출해 인식 서비스를 시작합니다. (참고: 스타터 예시)

momentSdk.start(
momentSdkConfig,
object : MomentSDK.ResultCallback {
override fun onSuccess() {}
override fun onFailure(exception: MomentException) {}
}
)

사용자가 서비스 이용을 중단하는 경우 stop() 을 호출해 인식 서비스를 종료합니다.

momentSdk.stop()
  • 로그아웃 — 인식 서비스를 유지하는 경우 (기본 권장): 아무것도 호출하지 않아도 됩니다.
  • 로그아웃 — 인식 서비스를 종료하는 경우: wipeData() 로 로컬 데이터를 삭제한 뒤 stop() 을 호출합니다.
  • 탈퇴: wipeData() + stop() 을 호출합니다.
momentSdk.wipeData()
momentSdk.stop()