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.

  • Condivisione di dati tra le tabs
  • Creare file .CSV nell'applicazione Android
  • API Google Maps API v2 SupportMapFragment all'interno di ScrollView - gli utenti non possono scorrere la mappa in verticale
  • Aggiorna ed elimina i dati in Firebase
  • Richiedere la password prima di disinstallare l'applicazione
  • Passa a ginocchio all'interno di ListView - Android
  • 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.

  • Utilizzo di LocationClient per get aggiornamenti di località
  • android listctivity onCheckedChangeListener
  • Il setWidth (int pixel) utilizza dip o px?
  • come posso mostrare la selezione di un'image in vista griglia contemporaneamente?
  • WebView proxy android
  • L'applicazione inizia sempre fresca dall'attività di root invece di riprendere lo stato di background (Bug noto)
  • 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.