简体   繁体   English

Android中的Google Plus封面照片

[英]Google Plus Cover Photo in android

I am trying to get Google plus cover photo using the following code: 我正在尝试使用以下代码获取Google plus封面照片:

if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) 
{
  Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
  String personName = currentPerson.getDisplayName();
  String userId = currentPerson.getId();
  personPhotoUrl = currentPerson.getImage().getUrl();
  String personGooglePlusProfile = currentPerson.getUrl();

  boolean coverphoto = currentPerson.getCover().hasCoverPhoto();

  String urlBackgroud = currentPerson.getCover().getCoverPhoto().getUrl();

  String email = Plus.AccountApi.getAccountName(mGoogleApiClient);
   Log.e("url","Background"+photo);
   Log.e(TAG, "Name: " + personName + ", plusProfile: "
                    + personGooglePlusProfile + ", email: " + email
                    + ", Image: " + personPhotoUrl + ", userId: " + userId );

When I have set the Cover photo. 设置好封面照片后。 I get the result with URL but I don't set the cover photo then I get the following error 我得到URL的结果,但没有设置封面照片,然后出现以下错误

  07-28 18:18:39.952: W/System.err(9566): java.lang.NullPointerException
  07-28 18:18:39.952: W/System.err(9566):   at com.ylg.maps.MainActivity.getProfileInformation(MainActivity.java:224)
  07-28 18:18:39.952: W/System.err(9566):   at com.ylg.maps.MainActivity.onConnected(MainActivity.java:178)
  07-28 18:18:39.952: W/System.err(9566):   at com.google.android.gms.internal.hd.c(Unknown Source)
  07-28 18:18:39.952: W/System.err(9566):   at com.google.android.gms.common.api.c.eF(Unknown Source)
  07-28 18:18:39.952: W/System.err(9566):   at com.google.android.gms.common.api.c.d(Unknown Source)
  07-28 18:18:39.952: W/System.err(9566):   at com.google.android.gms.common.api.c$2.onConnected(Unknown Source)
  07-28 18:18:39.952: W/System.err(9566):   at com.google.android.gms.internal.hd.c(Unknown Source)
  07-28 18:18:39.952: W/System.err(9566):   at com.google.android.gms.internal.hd.ck(Unknown Source)
  07-28 18:18:39.952: W/System.err(9566):   at com.google.android.gms.internal.hc$h.b(Unknown Source)
  07-28 18:18:39.952: W/System.err(9566):   at com.google.android.gms.internal.hc$h.d(Unknown Source)
  07-28 18:18:39.959: W/System.err(9566):   at com.google.android.gms.internal.hc$b.fq(Unknown Source)
  07-28 18:18:39.959: W/System.err(9566):   at com.google.android.gms.internal.hc$a.handleMessage(Unknown Source)
  07-28 18:18:39.959: W/System.err(9566):   at android.os.Handler.dispatchMessage(Handler.java:99)
  07-28 18:18:39.959: W/System.err(9566):   at android.os.Looper.loop(Looper.java:137)
  07-28 18:18:39.959: W/System.err(9566):   at android.app.ActivityThread.main(ActivityThread.java:5103)
  07-28 18:18:39.959: W/System.err(9566):   at java.lang.reflect.Method.invokeNative(Native Method)
  07-28 18:18:39.959: W/System.err(9566):   at java.lang.reflect.Method.invoke(Method.java:525)
  07-28 18:18:39.959: W/System.err(9566):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
  07-28 18:18:39.959: W/System.err(9566):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
  07-28 18:18:39.959: W/System.err(9566):   at dalvik.system.NativeStart.main(Native Method)

Then I tried: 然后我尝试了:

boolean coverphoto = currentPerson.getCover().hasCoverPhoto();

I am still getting the above error. 我仍然收到上述错误。 How to solve the issue for user's not settings cover photo? 如何解决用户未设置封面照片的问题?

Thanks! 谢谢!

You need to make an additional call when your google client is connected as follow : 当您的Google客户端连接时,您需要拨打额外的电话,如下所示:

if (mGoogleApiClient.isConnected()) {
Plus.PeopleApi.load(mGoogleApiClient, person.getId())
                            .setResultCallback(new ResultCallback<People.LoadPeopleResult>() {
                        @Override
                        public void onResult(People.LoadPeopleResult loadPeopleResult) {
                            if (loadPeopleResult.getStatus().isSuccess()) {
                                PersonBuffer personBuffer = loadPeopleResult.getPersonBuffer();
                                if (personBuffer != null && personBuffer.getCount() > 0) {
                                    Person currentUser = personBuffer.get(0);
                                    personBuffer.release();
                                    Person.Cover cover = currentUser.getCover();
                                    if (cover != null) {
                                        Person.Cover.CoverPhoto coverPhoto = cover.getCoverPhoto();
                                        if (coverPhoto != null) {
                                            String userCoverPhotoUrl = coverPhoto.getUrl();
                                            Log.i("Main TAG", "Cover photo Url :" + userCoverPhotoUrl);

                                        }
                                    } else {
                                        Log.i("TAG NO COVER", "Person has no cover");
                                    }
                                }
                            }
                        }
                    });

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM