Необходимо получить данные об аккаунте (или аккаунтах) пользователя 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; }