2016-01-06 16 views
6

私のアプリケーションでは、Google Plus統合を使用しています。また、Googleアカウントの詳細にアクセスすると、ユーザー名、プロフィール画像などが含まれます。しかし、これらのユーザーの詳細は何度かnull値を返します。理由を見つけるのを手伝ってください。Android Google +インテグレーションでnull値が返される場合があります

これは私のコードです:

mGoogleApiClient = new GoogleApiClient.Builder(MainActivity.this) 
       .addConnectionCallbacks(MainActivity.this) 
       .addOnConnectionFailedListener(MainActivity.this).addApi(Plus.API,Plus.PlusOptions.builder().build()) 
       .addScope(Plus.SCOPE_PLUS_LOGIN) 
       .addScope(Plus.SCOPE_PLUS_PROFILE) 
       .addApi(AppIndex.API).build(); 

とonConnectedで():ここ

@Override 
    public void onConnected(Bundle bundle) { 

      String personName="Unknown"; 

       gmail = Plus.AccountApi.getAccountName(
         (GoogleApiClient) mGoogleApiClient).toString(); 
       try { 

        String[] id = gmail.split("@"); 
        try { 
         plusid = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient).getId(); 
        } catch (NullPointerException e) { 
         plusid = id[0]; 
        } 

        plusimage = Plus.PeopleApi 
          .getCurrentPerson((GoogleApiClient) mGoogleApiClient) 
          .getImage().getUrl().toString(); 

        plusname = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient).getDisplayName().toString(); 

       } 
       if (CheckNetworkConnection.isConnectionAvailable(MainActivity.this)) { 
       // new SocialLogin().execute(); 
       } 
       } catch (NullPointerException e) { 
        Toast.makeText(getApplicationContext(), "GMAIL" + gmail, Toast.LENGTH_SHORT).show(); 
        Toast.makeText(getApplicationContext(), "ID" +plusid , Toast.LENGTH_SHORT).show(); 
        Toast.makeText(getApplicationContext(), "NAME" + plusname, Toast.LENGTH_SHORT).show(); 
        Toast.makeText(getApplicationContext(), "IMG" + plusimage, Toast.LENGTH_SHORT).show(); 
        Toast.makeText(MainActivity.this, "Google plus account not configured correctly", Toast.LENGTH_SHORT).show(); 
        dialog.dismiss(); 
       } 
      } 

plusimageとplusnameリターンは理由を見つけるために私を助けてnull.Please。

+0

私たちにコードを提供することなく、あなたのコードのどこに問題が生じているのかを見つけるのはかなり難しいでしょう。質問をする前に、これらのドキュメント(http://stackoverflow.com/help/how-to-ask)をお読みください。 – jeffdill2

+0

@ jeffdill2 Sorry.Question Edited – krishna

+0

@krishnaはこの例を参考にしてください。https://github.com/googlesamples/google-services/blob/master/android/signin/app/src/main /java/com/google/samples/quickstart/signin/SignInActivity.java#L51-L55 –

答えて

1

この行を追加してください。

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

が好きです。

public void onConnected(Bundle connectionHint) {  

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

    String personName="Unknown"; 
    if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) { 
     Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient); 
     String personName = currentPerson.getDisplayName(); 
     String personPhoto = currentPerson.getImage(); 
     String personGooglePlusProfile = currentPerson.getUrl(); 
    } 
} 

詳細については、 read Documentation

+0

これもnull値を返します – krishna

+0

@krishna SHA1はアプリとGoogleコンソールで同じですか? –

+0

はい、どちらも同じです。 – krishna

関連する問題