Список аккаунтов Android пуст - PullRequest
0 голосов
/ 23 апреля 2019

Я нахожусь в проекте, в котором мне нужно перечислить все учетные записи (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

Но тогда список учетных записей, извлеченных в строке ниже, пуст;

Account[] accounts = manager.getAccounts();

Кстати, у меня есть аккаунт на устройстве;

List of accounts on the device

Чего мне не хватает?

Примечание: Я искал в Интернете и задавал такие вопросы, как this , но ни в коем случае. Они указывают на «отсутствие разрешений», но мое приложение имеет.

1 Ответ

0 голосов
/ 23 апреля 2019

Как комментарий @ MikeM. Решив эту проблему, добавив Manifest.permission.READ_CONTACTS как в Manifest, так и в запрос разрешения времени выполнения. Странно, но работает ...

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...