我有一个Android应用程序,我正在按照these指令实现共享。
我设法让它运转起来。我第二天回来了,我在logcat中得到了这个输出:
G+ on connection failed ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{422d8470: android.os.BinderProxy@422d8410}}
我已经检查了api控制台,删除了我的OAuth clientID并重新输入了新的内容。这还没有解决它。我有什么想法可以解决它吗?
答案 0 :(得分:10)
您可以出于多种原因获得SIGN_IN_REQUIRED连接结果,例如:
PlusClient.clearDefaultAccount();
。PlusClient.revokeAccessAndDisconnect();
来断开该应用。对于SIGN_IN_REQUIRED,您收到的ConnectionResult包含PendingIntent,可用于解决问题。在the instructions you're following的示例中,示例代码使用以下代码处理onConnectionFailed
中的错误:
@Override
public void onConnectionFailed(ConnectionResult result) {
if (result.hasResolution()) {
try {
result.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR);
} catch (SendIntentException e) {
mPlusClient.connect();
}
}
// Save the result and resolve the connection failure upon a user click.
mConnectionResult = result;
}
result.startResolutionForResult()
将显示帐户选择器或权限对话框以解决上述问题,并将控制权返回给onActivityResult
,例如:
@Override
protected void onActivityResult(int requestCode, int responseCode, Intent intent) {
if (requestCode == REQUEST_CODE_RESOLVE_ERR && responseCode == RESULT_OK) {
mConnectionResult = null;
mPlusClient.connect();
}
}
此时,对PlusClient.connect()
的调用应该会成功。