Для выполнения одной из операций требуется 3 разрешения:
- Доступ к камере;
- Сохранение файлов;
- Чтение файлов.
Если запросить разрешения так, то для их получения нужно нажимать на кнопку операции 2 раза.
if (getContext().checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.CAMERA}, REQUEST_ID_IMAGE_CAPTURE);
}
if (getContext().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[] manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_ID_IMAGE_CAPTURE);
}
if (getContext().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_ID_IMAGE_CAPTURE);
}
Если объединить условные операторы через ||
приложение запрашивает только разрешение на доступ к камере и всё. Дальше сколько ни нажимай кнопку всё без толку. Ни запроса разрешений, ни самого действия.
Подскажите пожалуйста, как правильно запрашивать разрешения в подобных ситуациях?
Версия Android 6 (API 23).