12

Inserisco qui perché ho un problema. Sto lavorando su una nuova applicazione Android, e voglio sapere come posso rilevare quando un utente si disconnette (pulsante di logout di Facebook), perché voglio aggiornare la mia interfaccia utente in questo momento.Come rilevare l'evento di logout con l'API Android di Facebook v4?

Sono stato visto la documentazione ufficiale, ma non ho trovato nulla.

risposta

8
You can try this also 
if(AccessToken.getCurrentAccessToken()!=null) 
{ 
    Log.v("User is login","YES"); 

} 
else 
{ 
     Log.v("User is not login","OK"); 
     LoginManager.getInstance().logInWithReadPermissions(WelcomeActivity1.this, (Arrays.asList("public_profile", "user_friends","user_birthday","user_about_me","email"))); 
} 
+0

Grazie a tutti, scusate per il tempo trascorso, ero in viaggio in Amazzonia il mese scorso. – outstore

+1

Questa risposta non è realmente la parte della domanda basata sull'evento poiché è necessario eseguire il polling utilizzando questo codice. Per le richiamate di logout/login usare @ Nicolás Arias answer. –

26

è possibile impostare un ascoltatore sul metodo onCreate() sulla vostra attività

AccessTokenTracker accessTokenTracker = new AccessTokenTracker() { 
     @Override 
     protected void onCurrentAccessTokenChanged(
       AccessToken oldAccessToken, 
       AccessToken currentAccessToken) { 

      if (currentAccessToken == null){ 
       //User logged out 
      } 
     } 
    }; 

è necessario importare com.facebook.AccessToken e com.facebook.AccessTokenTracker

Quando si crea l'istanza di AccessTokenTracker esso implicitamente il monitoraggio inizio. Per il arrestando il monitoraggio, è necessario chiamare il numero AccessTokenTracker.stopTracking() ad es. in onDestroy() per non ricevere più eventi quando non necessario/voluto e soprattutto per non perdere memoria!

È possibile ottenere in qualsiasi momento se l'utente è connesso in/out chiamando

AccessToken at = AccessToken.getCurrentAccessToken(); 

Se l'utente non è connesso, si ottiene un valore di null.

Per ulteriori riferimenti consultate la documentazione a https://developers.facebook.com/docs/reference/android/current/class/AccessTokenTracker/

+1

La sua anche importare chiamare 'AccessTokenTracker.stopTracking()' per esempio in 'onDestroy()' per interrompere la ricezione di eventi, ad es. in un'attività già distrutta! –