2016-09-12 2 views
1

Ich integriere Google SSO in meine Android App. Ich würde gerne wissen, wenn ein Benutzer mit der Auswahl des Benutzerkontendialogs aufgefordert wurde und entschied, auf den Hintergrund zu klicken, so wurde der Dialog geschlossen.So erkennen Sie die Entlassung des google Dialogfelds "Konto wählen"

Der wählen Konto Dialog ist Auslöser von:

@Override 
    public void onConnected(Bundle connectionHint) { 
     Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
     Activity activity = SlateMathV2Activity.getActivity(); 
     activity.startActivityForResult(signInIntent, RC_GET_TOKEN);  
    } 

Ich verwende onActivityResult, aber ich weiß nicht, wie man unterschiedliche ein Fehler bei Login und eine Entlassung des Dialogs.

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == RC_GET_TOKEN) { 
     GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
     if (result.isSuccess()) { 
      //do something 
     } else { 
      // This is where I get when sign in fails, or when user dismisses the dialog 
     } 
    } 
} 

Hilfe wird sehr geschätzt, Danke, Giora.

Antwort

0

Dialog Startcode:

Intent intent = AccountPicker.newChooseAccountIntent(null, null, 
       new String[] {"com.google", "com.google.android.legacyimap"}, 
       false, null, null, null, null); 
     startActivityForResult(intent, RC_GET_TOKEN); 

Auf Aktivitätsergebnis:

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == RC_GET_TOKEN) { 
     //result code contains 0 if dialog dismissed by clicking on background or pressing Cancel button 
     // or -1 if OK button is clicked.Tested on Samsung galaxy S5 Android 6.0 

     boolean dialogIsDismissed; 
     if(resultCode ==0) dialogIsDismissed = true; 
     if(resultCode ==-1) dialogIsDismissed = false; 

     GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
     if (result.isSuccess()) { 
      //do something 
     } else { 
      // This is where I get when sign in fails, or when user dismisses the dialog 
     } 
    } 
} 

Ist es das, was Sie brauchen, oder ich Sie falsch gemacht?

+0

Der Dialog zum Auswählen des Benutzerkontos wird automatisch von getSignInIntent aufgerufen und resultCode ist in beiden Fällen 0. Entlassung oder nicht .. – gioravered

Verwandte Themen