真呼叫者安卓 sdk 错误代码 3

2022-09-02 21:18:10

我正在尝试在我的一个个人应用程序上实现用于登录/注册的Truecaller android-SDK。我从truecaller收到了合作伙伴密钥,以便在我的应用程序中实现它。按“使用 truecaller 自动填充”时发生错误,在 “public void onFailureProfileShared()” 中返回 “trueError.getErrorType( )” 上的 “错误代码 3”。我似乎找不到描述错误的方法。有没有人碰巧知道修复此错误?

我的实现:

public class auth extends AppCompatActivity implements ITrueCallback{

private TrueButton truebutton = null;
private TrueClient trueClient = null;

private String mTruecallerRequestNonce = null;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_auth);
    truebutton = (TrueButton) findViewById(R.id.com_truecaller_android_sdk_truebutton);

    boolean isUsable = truebutton.isUsable();
    if(isUsable) {
        trueClient = new TrueClient(auth.this, auth.this);
        truebutton.setTrueClient(trueClient);
    }
    else {
        truebutton.setVisibility(View.GONE);
    }

    truebutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            trueClient.getTruecallerUserProfile(auth.this);
        }
    });
}


@Override
protected void onResume() {
    mTruecallerRequestNonce = trueClient.generateRequestNonce();
    super.onResume();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(trueClient!=null && trueClient.onActivityResult(requestCode, resultCode, data)) {
        return;
    }
    super.onActivityResult(requestCode, resultCode, data);
}

@Override
public void onSuccesProfileShared(@NonNull TrueProfile trueProfile) {
    Toast.makeText(auth.this, trueProfile.firstName + " " + trueProfile.lastName, Toast.LENGTH_LONG).show();
}

@Override
public void onFailureProfileShared(@NonNull TrueError trueError) {
    Log.e("error code", trueError.getErrorType() + " ");
}
}

答案 1

以下是所有TrueCaller错误代码的列表:

ERROR_TYPE_INTERNAL = 0;
ERROR_TYPE_NETWORK = 1;
ERROR_TYPE_USER_DENIED = 2;
ERROR_TYPE_UNAUTHORIZED_PARTNER = 3;
ERROR_TYPE_UNAUTHORIZED_USER = 4;
ERROR_TYPE_TRUECALLER_CLOSED_UNEXPECTEDLY = 5;
ERROR_TYPE_TRUESDK_TOO_OLD = 6;
ERROR_TYPE_POSSIBLE_REQ_CODE_COLLISION = 7;
ERROR_TYPE_RESPONSE_SIGNATURE_MISSMATCH = 8;
ERROR_TYPE_REQUEST_NONCE_MISSMATCH = 9;

这些代码是类的静态成员,因此您可以像这样访问它们:TrueError

switch (trueError.getErrorType()) {

    case TrueError.ERROR_TYPE_INTERNAL:
        // do something
        break;
    case TrueError.ERROR_TYPE_NETWORK:
        // do something else
        break;
    // etc.
}

在您的情况下,您收到的错误是错误代码3,。您是否确保获取合作伙伴密钥,并在您的?ERROR_TYPE_UNAUTHORIZED_PARTNERAndroidManifest.xml

<meta-data android:name="com.truecaller.android.sdk.PartnerKey" android:value="YOUR_PARTNER_KEY_HERE"/>

答案 2

终于在帮助下完成了它。感谢@Sayan让我更近一步,@qualverse理解“错误代码”。

Truecaller需要您提供SHA1,并为您提供合作伙伴密钥。我发现,你的应用是发布还是调试并不重要。如果使用调试 SHA1 密钥生成 PartnerKey,则必须使用调试变体生成应用,如果使用已发布的 SHA1 生成 PartnerKey,则使用已发布的变体构建应用。

下面的屏幕截图将有助于理解密钥类型:

enter image description here

可以在Truecaller仪表板上为两个变体输入,以同时处理两个变体。始终确保正确签署发布变体。


推荐