Я нахожусь в проекте, в котором мне нужно перечислить все учетные записи (Gmail, Exchange и т. Д.) На устройстве пользователя.
обо всем по порядку; мой фрагмент кода ниже;
public class MainActivity extends AppCompatActivity {
public static final int PERMS_REQUEST_CODE = 1;
private static final String LOG_TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.GET_ACCOUNTS)) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.GET_ACCOUNTS}, PERMS_REQUEST_CODE);
} else {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.GET_ACCOUNTS}, PERMS_REQUEST_CODE);
}
} else {
AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
Account[] accounts = manager.getAccounts();
Log.d(LOG_TAG, "Done! List of accounts: " + accounts.length);
}
}
}
Показывает внизу экрана, как и ожидалось, и я разрешаю;
![Request of accessing Contacts](https://i.stack.imgur.com/9cisM.jpg)
Но тогда список учетных записей, извлеченных в строке ниже, пуст;
Account[] accounts = manager.getAccounts();
Кстати, у меня есть аккаунт на устройстве;
![List of accounts on the device](https://i.stack.imgur.com/IizR4.jpg)
Чего мне не хватает?
Примечание: Я искал в Интернете и задавал такие вопросы, как this , но ни в коем случае. Они указывают на «отсутствие разрешений», но мое приложение имеет.