Android Google Plus getCurrentPerson returns null

社会主义新天地 提交于 2019-12-10 13:28:19

问题


When I'm calling plusClient.getCurrentPerson() I am getting NULL.

Method onConnected(Bundle...) called after a successful login:

@Override
public void onConnected(Bundle bundle)
{
   if (plusClient.getCurrentPerson() == null)
   {
      Log.e("DD", "Person is null !");
   }
}

I have added SHA1 directly from eclipse (Window->Preferences->Android->Build). I don't know what I am doing wrong!

SHA1 fingerprint from Eclipse ADT

Client ID for installed applications

Simple API access


回答1:


In my case I forgot to enable permission for google-plus

Hope it works...Any doubt let me know

Check from scratch:

Sometime person info may be null

check : PERMISSIONS

Important things to do:

Enable Google plus API

Enable Google Maps Android API

If you test locally then add sha1 key in eclipse-->window-->preference option-->Android-->Build

OR

You can generate SHA1 key through command prompt

keytool -list -v -keystore "C:\Users\User.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

If you are publishing app in play-store then you need to change SHA1 key in google console

because in local SHA1 key is different . After doing signedApk SHA1 key is different

While generating signed apk -->in the last screen -->you can see SHA1 key

After adding in google console you will get API key

Add this key in Manifest file




回答2:


I just found out that you need to pass multiple scopes when you're building the PlusClient object:

PlusClient plusClient = new PlusClient.Builder(this, this, this).setScopes(Scopes.PLUS_LOGIN, Scopes.PLUS_PROFILE ,"https://www.googleapis.com/auth/userinfo.email").build();



回答3:


  1. I encountered this today. This is an old post but I think others should know how I fixed this in Android Studio and what was the source of the problem.
    I spent the last 6 hours with this and the problem was that a week ago I changed the package name using Refactoring from Android Studio but something must have gotten wrong since would always return me null, even though I refactored the project back to it's original package.
    I fixed this by creating a new project, without closing the original, but using the same package name and the same login code from the original project and to my surprise it worked. The name of the new project was different but I named the package the same as the old one and it only had a button and code to manage the connection and nothing else.
    The new project would read the data as it should and now the old project somehow got back on his feet and started reading the current user.
    I closed the project with Close Project option from the File menu.

Best regards !




回答4:


Please check your phone network. you can use those codes below to check:

Plus.PeopleApi.loadVisible(mGoogleApiClient, null).setResultCallback(this);

 @Override
 public void onResult(LoadPeopleResult result) {

    Log.d(TAG, "result.getStatus():" + result.getStatus());

 }

if the result status is network error. the current person will be null.

I'm in China, so as you know if we want to connect the google service , sometimes we need a good agent 。




回答5:


This looks like a permissions issue. I added payment details in the Google API Console and it magically started working.



来源:https://stackoverflow.com/questions/20554310/android-google-plus-getcurrentperson-returns-null

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!