2

J'ai créé une application flash simple qui permet de basculer la lampe de poche. Tout fonctionne bien, mais j'ai quelques problèmes avec l'autorisation sur API supérieur à 23.Autorisation de l'appareil photo sous l'API 23 uniquement

Dans API 23 une nouvelle méthode a été ajoutée pour gérer le mode de lampe de poche. Plus précisément CameraManager.setTorchMode(String cameraId, boolean enabled). Cette nouvelle méthode ne nécessite plus d'ouvrir l'appareil photo uniquement pour gérer les actions de la lampe de poche.

Mon problème est que ci-dessous API 23, cette méthode n'existe pas, donc j'ai besoin d'accéder à la caméra, ce qui me force à utiliser l'autorisation de la caméra: <uses-permission android:name="android.permission.CAMERA"/> dans le manifeste.

Mais je veux éviter de demander l'autorisation de la caméra sur API supérieure à 23 car cela n'affectera pas la fonctionnalité de l'application.

Est-ce que quelqu'un sait comment je peux demander l'autorisation de la caméra uniquement sur les API inférieures à 23?

+1

double possible de [demander des autorisations en fonction du niveau de l'API] (http: // stackoverflow.com/questions/38157814/request-permissions-based-on-api-level) – GSerg

+0

C'est impossible. Sauf si vous créez une nouvelle apk qui ne fonctionne que pour API 23+. – TOP

+0

@TOP, je pensais à ce sujet, mais cela pourrait être trop juste pour une vérification d'autorisation. Je ne considérerai cela que comme une dernière résolution. –

Répondre

3

J'ai trouvé la solution pour cela. Il semble que le uses-permission permet une certaine personnalisation et j'ai trouvé la propriété android:maxSdkVersion pour faire exactement ce que je veux.

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

J'espère que cela aide les autres dans une situation similaire.

En savoir plus sur ce qui peut être trouvé dans la documentation officielle: uses-permission

+0

ne devrait-il pas être 'android: maxSdkVersion =" 22 "'? A partir de 23, nous avons l'API 'CameraManager.setTorchMode'. –

0

Essayez cette autorisation dans le fichier manifeste:
<uses-feature android:name="android.hardware.camera2"/> <uses-feature android:name="android.hardware.camera" />

+0

Comment cela résout-il mon problème concernant la permission? –