我有一个android应用,正在按照these的说明实现共享。
我设法使它工作。第二天我回到了它,并在logcat中得到了以下输出:
G+ on connection failed ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{422d8470: android.os.BinderProxy@422d8410}}
我对API控制台进行了三重检查,删除了我的OAuth clientID,然后再次输入新的内容。这还没有解决。关于我可以研究解决问题的任何想法吗?
最佳答案
出于多种原因,您可以获得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()
的调用应该会成功。