카카오링크사용시 카카오톡설치여부 체크

‘com.kakao.sdk:v2-link-rx:2.4.2’ 사용중입니다.

카카오링크로 카카오메시지기를 보내기전에 카카오톡설치여부를 체크하려고하는데요.

혹시 api로 카카오톡 설치여부를 확인하는 기능이 있나요?

2021-05-13 15:50:30.039 8071-8071/com.kbcard.cxh.appcard W/System.err: ClientError(reason=NotSupported, msg=Kakaotalk not installed)
2021-05-13 15:50:30.039 8071-8071/com.kbcard.cxh.appcard W/System.err: at com.kakao.sdk.link.KakaoLinkIntentClient.linkResultFromResponse(KakaoLinkIntentClient.kt:73)
2021-05-13 15:50:30.039 8071-8071/com.kbcard.cxh.appcard W/System.err: at com.kakao.sdk.link.KakaoLinkIntentClient.linkResultFromResponse$default(KakaoLinkIntentClient.kt:48)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at com.kakao.sdk.link.RxLinkClient$defaultTemplate$1.apply(RxLinkClient.kt:68)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at com.kakao.sdk.link.RxLinkClient$defaultTemplate$1.apply(RxLinkClient.kt:36)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:57)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.operators.single.SingleDoOnSuccess$DoOnSuccess.onSuccess(SingleDoOnSuccess.java:60)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.operators.single.SingleDoOnError$DoOnError.onSuccess(SingleDoOnError.java:52)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.operators.single.SingleResumeNext$ResumeMainSingleObserver.onSuccess(SingleResumeNext.java:65)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.operators.observable.ObservableSingleSingle$SingleElementObserver.onComplete(ObservableSingleSingle.java:109)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onComplete(BodyObservable.java:66)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:51)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.Observable.subscribe(Observable.java:12267)
2021-05-13 15:50:30.040 8071-8147/com.kbcard.cxh.appcard D/TransportRuntime.SQLiteEventStore: Storing event with priority=DEFAULT, name=FIREPERF for destination cct
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.Observable.subscribe(Observable.java:12267)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.operators.observable.ObservableSingleSingle.subscribeActual(ObservableSingleSingle.java:35)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.Single.subscribe(Single.java:3603)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.operators.single.SingleResumeNext.subscribeActual(SingleResumeNext.java:39)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.Single.subscribe(Single.java:3603)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.operators.single.SingleDoOnError.subscribeActual(SingleDoOnError.java:35)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.Single.subscribe(Single.java:3603)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
2021-05-13 15:50:30.040 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.Single.subscribe(Single.java:3603)
2021-05-13 15:50:30.041 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.operators.single.SingleMap.subscribeActual(SingleMap.java:34)
2021-05-13 15:50:30.041 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.Single.subscribe(Single.java:3603)
2021-05-13 15:50:30.041 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
2021-05-13 15:50:30.041 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
2021-05-13 15:50:30.041 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
2021-05-13 15:50:30.041 8071-8071/com.kbcard.cxh.appcard W/System.err: at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
2021-05-13 15:50:30.041 8071-8071/com.kbcard.cxh.appcard W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
2021-05-13 15:50:30.041 8071-8071/com.kbcard.cxh.appcard W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
2021-05-13 15:50:30.041 8071-8071/com.kbcard.cxh.appcard W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
2021-05-13 15:50:30.041 8071-8071/com.kbcard.cxh.appcard W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
2021-05-13 15:50:30.041 8071-8071/com.kbcard.cxh.appcard W/System.err: at java.lang.Thread.run(Thread.java:762)
2021-05-13 15:50:30.042 8071-8071/com.kbcard.cxh.appcard E/KB_LOG: Share$Kakao$sendMessage$2: 카카오링크 보내기 실패ClientError(reason=NotSupported, msg=Kakaotalk not installed)
2021-05-13 15:50:30.050 8071-8147/com.kbcard.cxh.appcard D/TransportRuntime.JobInfoScheduler: Scheduling upload for context TransportContext(cct, DEFAULT, MSRodHRwczovL2ZpcmViYXNlbG9nZ2luZy1wYS5nb29nbGVhcGlzLmNvbS92MS9maXJlbG9nL2xlZ2FjeS9iYXRjaGxvZ1xBSXphU3lDY2traUg4aTJaQVJ3T3MxTEV6RktsZDE1YU9HOG96S28=) with jobId=1908748576 in 30000ms(Backend next call timestamp 1620888659160). Attempt 1

에러콜백으로 이렇게 들어오기는 합니다만,

에러가 났다고해서 미설치로 판단하는건 힘들것같아요

안녕하세요?
UserApiClient의 isKakaoTalkLoginAvailable() method로 확인 가능 하십니다.

https://developers.kakao.com/sdk/reference/android-rx/release/kakao-android-sdk-rx/com.kakao.sdk.user/-user-api-client/is-kakao-talk-login-available.html

어디에 있는 api인가요? 카카오링크에는 없는것 같습니다만

카카오 로그인 sdk안에 있네요,

질문1. 해당기능은 로그인sdk뿐만아니라 모든 sdk에 제공되어야 할 것 같은데, 추가 계획이 있으신가요?

질문2. 저희쪽에서 단순 카카오톡 설치여부를 판단해도 문제가 없나요?

답변 부탁드립니다.

질문1 답변
카카오링크에서 콜백으로 카카오톡 미설치 cause를 전달 하고 있기 때문에, 추가 계획은 없습니다.

질문2 답변
카카오톡 설치 여부만 확인 하셔도 됩니다.