首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果Truecaller没有安装在设备中,我们可以使用truecaller SDK吗?

如果Truecaller没有安装在设备中,我们可以使用truecaller SDK吗?
EN

Stack Overflow用户
提问于 2018-12-06 05:10:31
回答 1查看 1K关注 0票数 0

如果我尝试使用以下代码,我可以使用truecaller的SDK,如果用户安装了truecaller,就可以获取他的配置文件。

代码语言:javascript
复制
//has_truecaller = TrueSDK.getInstance().isUsable(); //doesnt work before init() methof
TrueSdkScope trueScope;
TrueSdkScope.Builder sdkBuilder = new TrueSdkScope.Builder(this, sdkCallback)
            .consentMode(TrueSdkScope.CONSENT_MODE_POPUP )
            .consentTitleOption( TrueSdkScope.SDK_CONSENT_TITLE_VERIFY )
            .footerType( TrueSdkScope.FOOTER_TYPE_SKIP );

if(has_truecaller) {
        trueScope = sdkBuilder.sdkOptions( TrueSdkScope.SDK_OPTION_WITH_OTP ).build();
}else{
        //TODO get mobile number
        BaseActivity.USER_MOBILE_NUMBER = "12345677";
        trueScope = sdkBuilder.sdkOptions( TrueSdkScope.SDK_OPTION_WITH_OTP ).build();
    }
TrueSDK.init(trueScope); 

但是,如果从设备中删除Truecaller,则会得到以下错误:

代码语言:javascript
复制
2-06 10:38:45.437 25694-25694/com.project.xyz.userclientapp E/AndroidRuntime: FATAL EXCEPTION: main
 Process: com.project.xyz.userclientapp, PID: 25694 java.lang.NoClassDefFoundError:
 Failed resolution of: Lretrofit2/converter/gson/GsonConverterFactory;
 at com.truecaller.android.sdk.b.c.a(Unknown Source:9)
 at com.truecaller.android.sdk.clients.a.<init>(Unknown Source:10)
 at com.truecaller.android.sdk.a.<init>(Unknown Source:46)
 at com.truecaller.android.sdk.a.a(Unknown Source:2)
 at com.truecaller.android.sdk.TrueSDK.init(Unknown Source:5)
 at com.project.xyz.userclientapp.login.LoginActivity.setupTrueSdk(LoginActivity.java:49)
 at com.project.xyz.userclientapp.login.LoginActivity.onCreate(LoginActivity.java:30)
 at android.app.Activity.performCreate(Activity.java:7149)
 at android.app.Activity.performCreate(Activity.java:7140)
 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1288)
 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3017)
 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3172)
 at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
 at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
 at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1906)
 at android.os.Handler.dispatchMessage(Handler.java:106)
 at android.os.Looper.loop(Looper.java:193)
 at android.app.ActivityThread.main(ActivityThread.java:6863)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-07 08:29:42

您可以使用以下行- TrueSDK.getInstance().isUsable()检查设备上是否存在Truecaller应用程序

在检查之前,确实需要使用init()方法初始化SDK。它将返回布尔值true / false,这取决于是否安装了Truecaller。

另外,您共享的日志也是因为您的android项目缺少了一个库依赖项。您可以尝试在分级中添加以下依赖项吗?这应该有助于解决错误-

compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4' compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53645008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档