Разрешение камеры только ниже API 23

Я сделал простое флеш-приложение, которое включает фонарик. Все работает нормально, но у меня есть несколько проблем с разрешением на API выше 23.

В API 23 был добавлен новый метод для работы с режимом фонарика. Точнее CameraManager.setTorchMode(String cameraId, boolean enabled). Этот новый метод больше не требует открытия камеры только для управления действиями фонарика.

Моя проблема в том, что ниже API 23 этот метод не существует, поэтому мне нужно получить доступ к камере, что вынуждает меня использовать разрешение камеры: <uses-permission android:name="android.permission.CAMERA"/> в манифесте.

Но я хочу не запрашивать разрешение камеры на API выше 23, так как это не повлияет на функциональность приложения.

Кто-нибудь знает, как я могу запросить разрешение камеры только для API ниже 23?


person Ionut Negru    schedule 10.01.2017    source источник
comment
Возможный дубликат Запрос разрешений на основе уровня API   -  person GSerg    schedule 10.01.2017
comment
Это невозможно. Если вы не создадите новый apk, который работает только для API 23+.   -  person TOP    schedule 10.01.2017
comment
@TOP, я думал об этом, но это может быть слишком просто для проверки разрешений. Я буду рассматривать это только как последнее решение.   -  person Ionut Negru    schedule 10.01.2017
comment
@GSerg Я не думаю, что это тот же сценарий. Я прочитал это, и для этого исправления можно было сделать с помощью: <uses-permission-sdk-23 android:name="string" android:maxSdkVersion="integer" />. Я хочу сделать наоборот.   -  person Ionut Negru    schedule 10.01.2017
comment
Решение найдено. Опубликовал ответ для этого.   -  person Ionut Negru    schedule 10.01.2017


Ответы (2)


Я нашел решение для этого. Кажется, что uses-permission допускает некоторую настройку, и я обнаружил, что свойство android:maxSdkVersion делает именно то, что я хочу.

<uses-permission android:name="android.permission.CAMERA" android:maxSdkVersion="23"/>

Я надеюсь, что это поможет другим в подобной ситуации.

Подробнее об этом можно узнать в официальной документации: uses-permission

person Ionut Negru    schedule 10.01.2017
comment
разве это не должно быть android:maxSdkVersion="22" ? С 23 года у нас есть CameraManager.setTorchMode API. - person Al Mamun; 28.09.2017

Попробуйте это разрешение в файле манифеста:
<uses-feature android:name="android.hardware.camera2"/> <uses-feature android:name="android.hardware.camera" />

person Vova Stelmashchuk    schedule 10.01.2017