Non capisco come funziona il metodo confirmCredentials
. Non ho mai visto nessuna opzione nell'interfaccia utente di Android come "Conferma credenziali" o qualcosa del genere, ci sono solo "Crea account" e "Rimuovi account".Chi e quando deve chiamare il metodo confirmCredentials della classe AbstractAccountAuthenticator-based?
6
A
risposta
1
Viene utilizzato se si desidera utilizzare l'account Gmail sul dispositivo come metodo di verifica. NFCSecure lo usa quando apri l'app, costringendoti ad accedere con il tuo gmail.
public void verifyAuth(Bundle b) throws IllegalArgumentException {
accountManager.confirmCredentials(getImportantAccount(importantEmail), b, (Activity) c, new OnConfirmed(), null);
}
public void attemptLogin() {
mEmailView.setError(null);
mPasswordView.setError(null);
mEmail = mEmailView.getText().toString();
mPassword = mPasswordView.getText().toString();
boolean cancel = false;
View focusView = null;
if (TextUtils.isEmpty(mPassword)) {
mPasswordView.setError(getString(R.string.error_field_required));
focusView = mPasswordView;
cancel = true;
} else if (mPassword.length() < 4) {
mPasswordView.setError(getString(R.string.error_invalid_password));
focusView = mPasswordView;
cancel = true;
}
if (TextUtils.isEmpty(mEmail)) {
mEmailView.setError(getString(R.string.error_field_required));
focusView = mEmailView;
cancel = true;
} else if (!mEmail.contains("@")) {
mEmailView.setError(getString(R.string.error_invalid_email));
focusView = mEmailView;
cancel = true;
}
if (cancel) {
focusView.requestFocus();
} else {
mLoginStatusMessageView.setText(R.string.login_progress_signing_in);
showProgress(true);
gAuth = new GoogleAuthentication(ctx, mEmailView.getText().toString());
gAuth.setUserConfirmedListener(SettingsUnlockActivity.this);
Bundle b = new Bundle();
b.putString(AccountManager.KEY_PASSWORD, mPasswordView.getText().toString());
try {
gAuth.verifyAuth(b);
} catch (IllegalArgumentException e) {
doUnSuccessfulLogin();
}
}
}