当我调用plusClient.getCurrentPerson()
时,我收到了NULL。
成功登录后调用的方法onConnected(Bundle...)
:
@Override
public void onConnected(Bundle bundle)
{
if (plusClient.getCurrentPerson() == null)
{
Log.e("DD", "Person is null !");
}
}
我直接从eclipse添加了SHA1(Window-> Preferences-> Android-> Build)。我不知道我做错了什么!
Eclipse ADT的SHA1指纹
已安装应用程序的客户端ID
简单的API访问
答案 0 :(得分:5)
在我的情况下,我忘了启用google-plus
的权限希望它有效......有任何疑问让我知道
从头开始检查:
检查:允许
要做的重要事情:
启用Google plus API
启用Google Maps Android API
如果你在本地测试 ,那么在eclipse中添加sha1键 - > gt;窗口 - >偏好选项 - > Android - >构建
OR
您可以通过命令提示符生成SHA1密钥
keytool -list -v -keystore“C:\ Users \ User.android \ debug.keystore”-alias androiddebugkey -storepass android -keypass android
如果您要在 Play-store 中发布应用,则需要在 Google控制台中更改SHA1密钥
因为在本地SHA1键是不同的。签名后,执行SHA1 SHA1键不同
在最后一个屏幕中生成签名的apk - > - >您可以看到 SHA1键
在Google控制台中添加后,您将获得 API密钥
在清单文件
中添加此密钥
答案 1 :(得分:2)
我刚刚发现在构建PlusClient对象时需要传递多个范围:
PlusClient plusClient = new PlusClient.Builder(this, this, this).setScopes(Scopes.PLUS_LOGIN, Scopes.PLUS_PROFILE ,"https://www.googleapis.com/auth/userinfo.email").build();
答案 2 :(得分:2)
祝你好运!
答案 3 :(得分:1)
请检查您的手机网络。您可以使用以下代码检查:
Plus.PeopleApi.loadVisible(mGoogleApiClient, null).setResultCallback(this);
@Override
public void onResult(LoadPeopleResult result) {
Log.d(TAG, "result.getStatus():" + result.getStatus());
}
如果结果状态是网络错误。当前的人将为空。
我在中国,所以如果我们想要连接谷歌服务,有时我们需要一个好的代理。
答案 4 :(得分:0)
这看起来像权限问题。我在Google API控制台中添加了付款详细信息,它神奇地开始工作。