2

我制作了一个简单的闪光灯应用程序,用于切换手电筒。一切工作正常,但我有几个问题与API的权限高于23.只有API 23以下的摄像头权限

在API 23中添加了一种新的方法来处理手电筒模式。更确切地说CameraManager.setTorchMode(String cameraId, boolean enabled)。 这种新方法不再需要打开相机,只是为了处理手电筒操作。

我的问题是,API 23以下,这种方法不存在,因此我需要访问相机,这迫使我在清单中使用相机权限:<uses-permission android:name="android.permission.CAMERA"/>

但我想避免在高于23的API上请求摄像头权限,因为这不会影响应用程序的功能。

有谁知道我只能在23以下的API上请求相机权限吗?

+1

[基于API级别的权限请求(HTTP的可能重复:// stackoverflow.com/questions/38157814/request-permissions-based-on-api-level) – GSerg

+0

这是不可能的。除非您创建仅适用于API 23+的新apk。 – TOP

+0

@TOP,我正在考虑这个,但这可能太多只是为了权限检查。我会认为这只是最后的决心。 –

回答

3

我找到了解决方案。看来uses-permission允许一些定制,我发现android:maxSdkVersion属性做我想要的。

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

我希望这可以帮助其他人在类似的情况。

更多内容,可在官方文档中找到:uses-permission

+0

不应该是'android:maxSdkVersion =“22”'? 从23开始,我们有'CameraManager.setTorchMode' API。 –

0

清单文件试试这个权限:
<uses-feature android:name="android.hardware.camera2"/> <uses-feature android:name="android.hardware.camera" />

+0

这是如何解决我的权限问题? –

相关问题