首页 > 解决方案 > Truecaller SDK 错误:没有可用的兼容客户端。请更改您的范围

问题描述

我正在尝试在我的应用程序中实现 truecaller,并且我所做的完全是用 Truecaller Docs 编写的。但它仍然给我错误。

我试过谷歌搜索问题,但仍然找不到解决方案。

这是错误:

No compatible client available. Please change your scope

这是我的代码:

public class MainActivity extends FragmentActivity implements ITrueCallback {

  private ViewPager2 viewPager2;
  private List < Integer > imagesList;
  private Button btnContinue, btnLoginTruecaller;
  private EditText etPhone;
  private Preferences preferences;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Constants.removeStatusBar(this);

    TruecallerSdkScope trueScope = new TruecallerSdkScope.Builder(this, sdkCallback)
      .consentMode(TruecallerSdkScope.CONSENT_MODE_BOTTOMSHEET)
      .buttonColor(Color.parseColor("#000000"))
      .buttonTextColor(Color.parseColor("#000000"))
      .loginTextPrefix(TruecallerSdkScope.LOGIN_TEXT_PREFIX_TO_GET_STARTED)
      .loginTextSuffix(TruecallerSdkScope.LOGIN_TEXT_SUFFIX_PLEASE_VERIFY_MOBILE_NO)
      .ctaTextPrefix(TruecallerSdkScope.CTA_TEXT_PREFIX_USE)
      .buttonShapeOptions(TruecallerSdkScope.BUTTON_SHAPE_ROUNDED)
      .privacyPolicyUrl("<<YOUR_PRIVACY_POLICY_LINK>>")
      .termsOfServiceUrl("<<YOUR_PRIVACY_POLICY_LINK>>")
      .footerType(TruecallerSdkScope.FOOTER_TYPE_NONE)
      .consentTitleOption(TruecallerSdkScope.SDK_CONSENT_TITLE_LOG_IN)
      .sdkOptions(TruecallerSdkScope.SDK_OPTION_WITHOUT_OTP)
      .build();

    TruecallerSDK.init(trueScope);

    btnContinue = findViewById(R.id.btnContinue);
    etPhone = findViewById(R.id.etPhone);
    btnLoginTruecaller = findViewById(R.id.btnLoginTruecaller);
    TruecallerSDK.getInstance().getUserProfile(this);


    btnLoginTruecaller.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {}
    });

    preferences = new Preferences(this);
    if (preferences.isLoggedin()) {
      Intent intent = new Intent(this, HomeActivity.class);
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
      startActivity(intent);
    }

    imagesList = new ArrayList < > ();
    imagesList.add(R.drawable.black);
    imagesList.add(R.drawable.pubg);
    //        ViewPagerAdapter adapter = new ViewPagerAdapter(this,imagesList);
    //        viewPager2.setAdapter(adapter);

    btnContinue.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        preferences.setMobileNumber(etPhone.getText().toString());
        Intent intent = new Intent(MainActivity.this, OTPActivity.class);
        intent.putExtra("phone", etPhone.getText().toString());
        startActivity(intent);
      }
    });


  }

  private final ITrueCallback sdkCallback = new ITrueCallback() {
    @Override
    public void onSuccessProfileShared(@NonNull TrueProfile trueProfile) {

    }

    @Override
    public void onFailureProfileShared(@NonNull TrueError trueError) {

    }

    @Override
    public void onVerificationRequired(TrueError trueError) {

    }
  };

  @Override
  public void onSuccessProfileShared(@NonNull TrueProfile trueProfile) {

  }

  @Override
  public void onFailureProfileShared(@NonNull TrueError trueError) {

  }

  @Override
  public void onVerificationRequired(TrueError trueError) {

  }
}

这是我正在关注的 truecaller 文档:

https://docs.truecaller.com/truecaller-sdk/android/integrating-with-your-app/setup

标签: android

解决方案


感谢分享以上信息。

您面临的例外情况:

没有可用的兼容客户端。请更改您的范围

仅当您从 TruecallerSDK 调用不在您在初始化 SDK 时提供的范围内的方法时才会出现。

例如,如果未安装 Truecaller 应用程序或安装了 Truecaller 应用程序但未登录,并且您将 sdkOptions 提到为 TruecallerSdkScope.SDK_OPTION_WIHTOUT_OTP,那么在调用 TruecallerSDK.getInstance().getUserProfile() 方法时,您将面临此异常。

为了避免再次遇到这种情况,您可以检查 TruecallerSDK.getInstance.isUsable 是否为 True,然后仅调用 TruecallerSDK.getInstance.getUserProfile 或者您可以将 sdkOptions 范围更改为 TruecallerSdkScope.SDK_OPTION_WITH_OTP 以验证 Truecaller 和 Non- Truecaller 用户

如果您将来遇到任何疑问,请随时通过我们的支持渠道 https://developer.truecaller.com/support 与我们联系,以获得更快、更专业的回复。

看待,

帕思


推荐阅读