После того, как я покопался, я, наконец, загрузил все связанные приложения (outlook, linkedin, twitter...) и выгрузил там типы учетных записей, используя следующий код:
public void pickUserAccount() {
/*This will list all available accounts on device without any filtering*/
Intent intent = AccountPicker.newChooseAccountIntent(null, null,
null, false, null, null, null, null);
startActivityForResult(intent, REQUEST_CODE_PICK_ACCOUNT);
}
/*After manually selecting every app related account, I got its Account type using the code below*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_PICK_ACCOUNT) {
// Receiving a result from the AccountPicker
if (resultCode == RESULT_OK) {
System.out.println(data.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE));
System.out.println(data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME));
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, R.string.pick_account, Toast.LENGTH_LONG).show();
}
}
}
И это следующие результаты, которые я получил:
- Outlook (горячая почта, Live):
com.outlook.Z7.eas
- LinkedIn:
com.linkedin.android
- Фейсбук:
com.facebook.auth.login
- Твиттер:
com.twitter.android.auth.login
- Все остальные учетные записи электронной почты Imap, используемые в приложении Android Mail:
com.google.android.legacyimap
(спасибо Ozbek)
- и конечно гугл:
com.google
Мне все еще не хватает типа учетной записи yahoo, потому что почтовое приложение yahoo постоянно зависало на моем устройстве.
Поэтому я надеюсь, что если у вас есть тип учетной записи Yahoo, пожалуйста, поделитесь им.
ВЕРСИЯ 7 декабря 2015 г. с лучшим решением
Pattern emailPattern = Patterns.EMAIL_ADDRESS;
Account[] accounts = AccountManager.get(getActivity()).getAccounts();
ArrayList<String> emails = new ArrayList<String>();
for (Account account : accounts) {
if (emailPattern.matcher(account.name).matches()) {
emails.add(account.name);
}
}
person
Bassel Mourjan
schedule
06.01.2015