Я пытаюсь определить, добавил ли пользователь учетную запись, чтобы предотвратить добавление одной и той же учетной записи несколько раз в мое приложение. Я использую свою собственную аутентификацию учетной записи. Вот мой код:Проверьте, зарегистрирована ли учетная запись в AccountManager
public class AuthenticatorActivity extends AccountAuthenticatorActivity {
private AccountManager mAccountManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.setup_mail_dialog);
mAccountManager = AccountManager.get(getBaseContext());
findViewById(R.id.bSetupConfirm).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkAccount();
}
});
}
private void checkAccount() {
mAccountManager = AccountManager.get(getBaseContext());
String accountName = ((EditText) findViewById(R.id.etSetupEmail)).getText().toString().trim();
Account[] accounts = mAccountManager.getAccountsByType(getResources().getString(R.string.account_type));
for(Account account : accounts) {
if(account.name == accountName) {
System.out.println("Account exists");
return;
}else{
System.out.println("Account do not exists");
return;
}
}
}
Однако, даже если учетная запись существует приложение всегда показывать «Счет не существует».
вы проверили 'mAccountManager.getAccounts()', чтобы увидеть, если учетная запись на самом деле там? Если это так, это правильный тип? – Victory
Да, уже проверены и есть учетные записи. – TheGMX
Важно отметить, что вы собираетесь проверить только первый, цикл остановится после одного сравнения, так как в обоих утверждениях есть возврат. – Adi