Come posso controllare se il segno utente è fuori dalla visualizzazione predefinita di servizi dei giochi?

Ho integrato i servizi di giochi di Google nel mio gioco, inclusi leaderboard e risultati. Se l'utente apre l'attività di leader o attività, ha la possibilità di disconnettere le impostazioni nell'angolo superiore destro.

Come posso verificare se l'utente è effettivamente connesso? getGamesClient.isConnected () è ancora vero, anche se l'utente è stato disconnesso dalla vista di Google.

  • Come leggere le properties; Android con Java
  • Denial di authorization di Android 6.0: richiede l'authorization android.permission.WRITE_SETTINGS
  • Disegnabile come background per CardView
  • problema di posizione dell'image di android gallery
  • Errore durante l'esecuzione del command 'ant' su Mac OS X 10.9 Mavericks quando si costruisce per Android con PhoneGap / Cordova
  • Carica, salva e utilizza i dati di authentication in Android API Box
  • Se faccio clic sul button di logout (che è ancora presente, perché i giochiClient sono ancora collegati) ottengo un SecurityException:

    08-16 11: 01: 21.262 14288-14288 /? E / AndroidRuntime: FATAL EXCEPTION: java.lang.SecurityException principale a android.os.Parcel.readException (Parcel.java:1425) a android.os.Parcel.readException (Parcel.java:1379) a com.google.android. gms.internal.bm $ a $ aa (origine sconosciuta) a com.google.android.gms.internal.bj.signOut (origine sconosciuta) a com.google.android.gms.games.GamesClient.signOut (origine sconosciuta)

    Al momento, sto controllando il codice di risposta di ActivityForResult e scollegando i GiochiClient, se è in stato inconsistente, ma non mi piace questo approccio.

  • C'è un modo per interrogare un tipo specifico di applicazioni compatibili con il filter Intent?
  • Calcola il punto dell'arco centrale, sapendo che è inizio e fine gradi
  • Come disabilitare il crollo di un ExpandableListView?
  • come fare la sfocatura dell'image in android
  • Come aggiungere il pacchetto java.awt.image in Android
  • ExceptionWithContext viene gettato quando si cerca di creare un'applicazione Android con Ant
  • 3 Solutions collect form web for “Come posso controllare se il segno utente è fuori dalla visualizzazione predefinita di servizi dei giochi?”

    Prova a gestire onActivityResult:

    public boolean onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == RC_YOUR_UNIQUE_ID && resultCode == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED) { mHelper.disconnect(); // update your logic here (show login btn, hide logout btn). } else { mHelper.onActivityResult(requestCode, resultCode, data); } return false; } 

    RC_YOUR_UNIQUE_ID è l'ID che hai usato per mostrare l'attività Leaderboard o Achievements.

    Penso che ciò di cui hai bisogno è: isSignedIn (); Come questo:

      public boolean getSignedIn() { return isSignedIn(); } 

    Ciò restituisce un vero o falso se l'utente è firmato o no. Il metodo in GameHelper.java:

      /** Returns whether or not the user is signed in. */ public boolean isSignedIn() { return mState == STATE_CONNECTED; } 

    Spero che sia d'aiuto.

    Nel mio caso sto facendo come segue. Su MainActivity onActivityResult() . RC_UNUSED è il RC_UNUSED quando si chiama per aprire le attività Leaderboards , Achievements and Settings dall'applicazione del servizio Google Play.

     @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); if (requestCode == RC_UNUSED && resultCode == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED) { signOut(); } Log.i("test", "On Activity result called"); } 

    Scrivi il metodo signOut() come segue

     public void signOut() { try { Games.signOut(mGoogleApiClient); }catch (SecurityException se){ Log.i("test", "mGoogleApiClient status was disconnected when callin signOut status. message = " + se.getMessage()); } if (mGoogleApiClient.isConnected()) { mGoogleApiClient.disconnect(); } // update your UI logic here (show login btn, hide logout btn). } 

    Non dimenticare di aggiornare l'interface utente alla fine di signOut()

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.