2017-11-29 6 views
0

So gibt es Änderungen in der Art von Google Play anmelden lange zurück, als ich implementiert anmelden es war werfen GoogleApiClient, aber jetzt ist es anders seine werfen GoogleSignInClient ich don Ich habe keine Ahnung, wie man Popupview einrichtet, wenn man sich anmeldet oder einen Erfolg freischaltet. Und selbst gibt es keine gute Erklärung für diese in Google Text & Tabellen so jemand weiß, dass es hinterlassen bitte ur Antwort Vielen Dank im VoraussetViewForPopUp (view) google api (11.6.0) google play anmelden

//google variable 
private static int RC_SIGN_IN = 9001; 
private static final int RC_ACHIEVEMENT_UI = 9003; 
GoogleApiClient googleApiClient; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

} 

public void SignIn(View view) { 
    GoogleSignInClient signInClient = GoogleSignIn.getClient(this, 
      GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN); 
    Intent intent = signInClient.getSignInIntent(); 
    startActivityForResult(intent, RC_SIGN_IN); 
} 

private void signInSilently() { 
    GoogleSignInClient signInClient = GoogleSignIn.getClient(this, 
      GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN); 
    signInClient.silentSignIn().addOnCompleteListener(this, 
      new OnCompleteListener<GoogleSignInAccount>() { 
       @Override 
       public void onComplete(@NonNull Task<GoogleSignInAccount> task) { 
        if (task.isSuccessful()) { 
         // The signed in account is stored in the task's result. 
         GoogleSignInAccount signedInAccount = task.getResult(); 
        } else { 
         // Player will need to sign-in explicitly using via UI 
        } 
       } 
      }); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    signInSilently(); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Toast.makeText(MainActivity.this, String.valueOf(requestCode), Toast.LENGTH_SHORT).show(); 

    if (requestCode == RC_SIGN_IN) { 
     GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
     Log.d("fuck", String.valueOf(result)); 
     // Toast.makeText(MainActivity.this,String.valueOf(result),Toast.LENGTH_SHORT).show(); 
     if (result.isSuccess()) { 
      // The signed in account is stored in the result. 
      Toast.makeText(MainActivity.this, "Succesfull", Toast.LENGTH_SHORT).show(); 

      GoogleSignInAccount signedInAccount = result.getSignInAccount(); 
     } else { 
      String message = result.getStatus().getStatusMessage(); 
      if (message == null || message.isEmpty()) { 
       message = getString(R.string.signin_other_error); 
      } 
      new AlertDialog.Builder(this).setMessage(message) 
        .setNeutralButton(android.R.string.ok, null).show(); 
     } 
    } 
} 

public void achievement(View view) { 

    Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) 
      .getAchievementsIntent() 
      .addOnSuccessListener(new OnSuccessListener<Intent>() { 
       @Override 
       public void onSuccess(Intent intent) { 
        startActivityForResult(intent, RC_ACHIEVEMENT_UI); 
       } 
      }); 
} 

public void unlock(View view) { 
    Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) 
      .unlock(getString(R.string.achievement_newbie)); 
} 

Antwort

5

Ok, so bekam ich die Antwort selbst nach ein paar Versuchen geben , was Sie tun können, ist nach erfolgreiche Anmeldung task.getResult() wird GoogleSignInAccount Objekt zurückgeben Sie können das an getGamesClient Methode übergeben, die ein GamesClient Objekt zurückgibt und das Objekt verwenden, können Sie setViewForPopups Methode aufrufen. unten ist der eindeutige Code

private void signInSilently() { 
    GoogleSignInClient signInClient = GoogleSignIn.getClient(this, 
      GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN); 
    signInClient.silentSignIn().addOnCompleteListener(this, 
      new OnCompleteListener<GoogleSignInAccount>() { 
       @Override 
       public void onComplete(@NonNull Task<GoogleSignInAccount> task) { 
        if (task.isSuccessful()) { 
         // The signed in account is stored in the task's result. 
         GoogleSignInAccount signedInAccount = task.getResult(); 
         GamesClient gamesClient =Games.getGamesClient(MainActivity.this,signedInAccount); 
         gamesClient.setViewForPopups(findViewById(R.id.textview)); 
        } else { 
         // Player will need to sign-in explicitly using via UI 
        } 
       } 
      }); 
} 
Verwandte Themen