Android: учетная запись пользователя (не телефон) - PullRequest
0 голосов
/ 13 марта 2012

У меня есть приложение, которое сохраняет изображение пользователя, но я бы сохранил с каждым изображением также идентификатор пользователя.

Пользователь может сменить телефонное устройство, но учетная запись Google всегда одинакова.

Мне нужна строка кода, которая идентифицирует пользователя, а не телефон.

Возможно, числовой идентификатор, не обязательно адрес электронной почты аккаунта Google.

У меня есть этот код, но он неправильный (вернуть идентификатор устройства, а не идентификатор пользователя)

TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
telephoneCode = tm.getDeviceId();

или

String code=Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);

# # # # # # # # #

У меня есть тест с

AccountManager mgr = AccountManager.get(getApplicationContext());
Account[] accounts = mgr.getAccountsByType("com.google");
String userCode=accounts.toString();

В этом коде вернуть строку:

[Landroid.accounts.Account;@318ca48b

Этот буквенно-цифровой код всегда меняется!

Спасибо-х Даниэла.

1 Ответ

1 голос
/ 13 марта 2012

Вот как я это делаю:

AccountManager accountManager = AccountManager.get(getApplicationContext());

Account[] accounts = accountManager.getAccountsByType("com.google");

for (Account a: accounts) {
    if (a.name.contains("@gmail.com")) {
        return a.name;
    }
}

Это вернет первую учетную запись, которая заканчивается на @ gmail.com; их может быть больше одного.

...