Андроид приложение при установке не запрашивает разрешения, указанные в манифесте. У меня там был сервис для оповещений. И он вообще не работает. В манифесте все прописано по всем канонам, но когда устанавливаю, пишет
для этого приложения не требуются специальные разрешения.
несмотря на то, что там много 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;
}
// Обрабатываем другие разрешения
}
}
Комментариев нет:
Отправить комментарий