【问题标题】:Camera permission below API 23 only仅 API 23 以下的相机权限
【发布时间】:2017-01-10 07:31:26
【问题描述】:

我制作了一个简单的闪光灯应用程序,用于切换手电筒。一切正常,但我在 API 高于 23 的权限方面遇到了一些问题。

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

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

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

有谁知道我如何仅在 23 岁以下的 API 上请求相机权限?

【问题讨论】:

  • 不可能。除非您创建一个仅适用于 API 23+ 的新 apk。
  • @TOP,我正在考虑这个问题,但这对于权限检查来说可能太多了。我只会将此视为最后的解决方案。
  • @GSerg 我不认为这是相同的情况。我已经阅读了那一篇,对于那一篇,可以使用以下方法进行修复:<uses-permission-sdk-23 android:name="string" android:maxSdkVersion="integer" />。我想做相反的事情。
  • 找到了解决方案。为此发布了答案。

标签: android permissions camera android-6.0-marshmallow flashlight


【解决方案1】:

我找到了解决方案。 uses-permission 似乎允许进行一些自定义,我发现 android:maxSdkVersion 属性可以满足我的需求。

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

我希望这对处于类似情况的其他人有所帮助。

更多信息可以在官方文档中找到:uses-permission

【讨论】:

  • 不应该是android:maxSdkVersion="22"吗?从 23 日开始,我们已经 CameraManager.setTorchMode API。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多