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