使用 Cordova 添加 android.permission.CAMERA

问题描述 投票:0回答:3

我正在使用最新版本的 Cordova (6.3.1),我希望以下权限出现在 AndroidManifest.xml 中:

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

手动添加此行不起作用,因为每次运行命令时都会重新生成 XML

cordova run android

我已将

cordova-plugin-camera
添加到我的项目中

cordova plugin add cordova-plugin-camera

此插件不会在 AndroidManifest.xml 中添加 CAMERA 权限

不知道这是否正常

如何将此权限添加到我的项目中?


编辑: 通常,Cordova 插件负责将所需的权限添加到清单中。相机插件没有添加这个特定的权限,我想知道:

  • 如果插件应该添加此权限(错误?我已经在他们的 Jira 跟踪器上打开了一个问题)
  • 如果我可以自己手动添加此权限,也许可以在 Cordova 的 config.xml 中
android cordova plugins permissions camera
3个回答
17
投票

我认为相机插件从未向

AndroidManifest.xml
添加过此权限。查看 Github 存储库,
WRITE_EXTERNAL_STORAGE
于 2013 年 6 月添加(CB-3654),但我没有看到相机本身的任何内容。不确定为什么会这样,但您可以自己添加对
AndroidManifest.xml
的权限,或者在项目的
config-file
文件中添加
config.xml
指令,例如:

    <config-file target="AndroidManifest.xml" parent="/*" mode="merge">
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-feature android:name="android.hardware.camera" />
        <uses-feature android:name="android.hardware.camera.autofocus" />
    </config-file>

0
投票

关于这个挑战。我最近也面临同样的问题。感谢 Johann 添加

xmlns:android="http://schemas.android.com/apk/res/android" to the root widget tag in the config.xml

的创新建议

然后,阅读 android 开发者网站上的文档,很明显

<uses-feature android:name="android.hardware.camera" />
不适用于从 API 21 开始的最新版本的 andriod API 级别。因此,要使其在较新版本的 Android 上运行,您必须使用
<uses-feature android:name="android.hardware.camera2" />
,它是对已弃用的相机类的引用。

您可以将此行添加到您的

AndroidMainfest.xlm
文件中或更新您的配置文件指令以使用它。

 <widget xmlns:android="http://schemas.android.com/apk/res/android">
 <config-file target="AndroidManifest.xml" parent="/*" mode="merge">
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera2" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
</config-file>

-10
投票

您正在构建本机应用程序还是混合应用程序?

本地人可以参考这个网站:

https://developer.android.com/reference/android/hardware/Camera.html

© www.soinside.com 2019 - 2024. All rights reserved.