我正在尝试在我的个人应用程序之一上实现用于登录/注册的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() + " ");
}
}
Run Code Online (Sandbox Code Playgroud)
qua*_*rse 10
以下是所有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;
Run Code Online (Sandbox Code Playgroud)
这些代码是TrueError类的静态成员,因此您可以像这样访问它们:
switch (trueError.getErrorType()) {
case TrueError.ERROR_TYPE_INTERNAL:
// do something
break;
case TrueError.ERROR_TYPE_NETWORK:
// do something else
break;
// etc.
}
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您得到的错误是错误代码3 , ERROR_TYPE_UNAUTHORIZED_PARTNER. 您是否确保获得合作伙伴密钥,并将此行添加到您的AndroidManifest.xml?
<meta-data android:name="com.truecaller.android.sdk.PartnerKey" android:value="YOUR_PARTNER_KEY_HERE"/>
Run Code Online (Sandbox Code Playgroud)
终于有了帮助。感谢@Sayan让我更进一步,并且@qualverse进一步了解了“错误代码”。
Truecaller要求您提供SHA1,并向您提供PartnerKey。我发现,您的应用是发布还是调试都没有关系。如果与产生PartnerKey 调试SHA1键,那么你必须构建应用程序与调试版本,如果PartnerKey与生成发布SHA1然后用构建的应用程序发布的变种。
下面的屏幕截图将帮助您了解密钥类型:
可以在Truecaller仪表板上为两个变体输入内容,以同时在两个变体上工作。始终确保正确签署发行版本。
| 归档时间: |
|
| 查看次数: |
1483 次 |
| 最近记录: |