Страницы

Поиск по вопросам

вторник, 2 апреля 2019 г.

Почему приложение не спрашивает разрешения при установке

Андроид приложение при установке не запрашивает разрешения, указанные в манифесте. У меня там был сервис для оповещений. И он вообще не работает. В манифесте все прописано по всем канонам, но когда устанавливаю, пишет
для этого приложения не требуются специальные разрешения.
несмотря на то, что там много uses-permission. Как можно сделать так, чтобы спрашивало при установке?


Ответ

Начиная с версии API 23 (Android 6.0), «dangerous» разрешения нужно запрашивать в рантайме
Проверяем, есть ли нужные разрешения:
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED) { // Разрешение не получено }
Запрашиваем разрешения:
ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.READ_CONTACTS}, MY_PERMISSIONS_REQUEST_READ_CONTACTS);
Обрабатываем результат получения разрешений:
@Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
// При отмене предоставления разрешений, этот массив пуст if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Разрешение получено
} else {
// Пользователь отказался предоставлять разрешение } return; }
// Обрабатываем другие разрешения } }

Комментариев нет:

Отправить комментарий