Поиск по этому блогу

среда, 25 декабря 2013 г.

Android. Получаем Google Account пользователя

Необходимо получить данные об аккаунте (или аккаунтах) пользователя Android устройства. Для этого необходимо использовать класс AccountManager.


1. Добавим необходимое разрешение в файл AndroidManifest.xml

<?xml version='1.0' encoding='utf-8'?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
  ..
  <uses-permission android:name="android.permission.GET_ACCOUNTS" />
</manifest>

2. Получаем аккаунты всех пользователей

AccountManager accountManager = (AccountManager)getSystemService(ACCOUNT_SERVICE);
Account[] accounts = manager.getAccounts();

3. Получаем только аккаунты, которые email

Pattern emailPattern = Patterns.EMAIL_ADDRESS;
AccountManager accountManager = (AccountManager)getSystemService(ACCOUNT_SERVICE);
Account accounts[] = accountManager.getAccounts();
for (Account account : accounts) {
  if (emailPattern.matcher(account.name).matches()) {
    String accountName = account.name;
    ...
  }
}

4. Получаем только гугловые аккаунты

AccountManager accountManager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
Account accounts[] = accountManager.getAccountsByType("com.google");
Account account;
if (accounts.length > 0) {
  account = accounts[0];
} else {
  account = null;
}

1 комментарий: