Android Google Plus getCurrentPerson返回null

时间:2013-12-12 21:09:50

标签: android google-plus

当我调用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指纹 SHA1 fingerprint from Eclipse ADT

已安装应用程序的客户端ID Client ID for installed applications

简单的API访问 Simple API access

5 个答案:

答案 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密钥

清单文件

中添加此密钥

enter image description here

答案 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)

  1. 我今天遇到了这个。这是一篇很老的帖子,但我认为其他人应该知道我是如何在Android Studio中修复它的,以及问题的根源是什么 我用了这个花了最后6个小时,问题是一周前我使用Android Studio中的Refactoring更改了包名,但是一定有问题,因为总是会将null返回null,即使我将项目重构为原始包。
    我通过创建一个新项目来修复此问题,但没有关闭原始项目,而是使用相同的软件包名称和原始项目中的相同登录代码,令我惊讶的是它有效。新项目的名称不同,但我将包的名称与旧项目相同,它只有一个按钮和代码来管理连接而没有别的。
    新项目将按原样读取数据,现在旧项目以某种方式重新站起来并开始阅读当前用户。
    我从“文件”菜单中使用“关闭项目”选项关闭了项目。
  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控制台中添加了付款详细信息,它神奇地开始工作。