我正在使用最新版本的 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 插件负责将所需的权限添加到清单中。相机插件没有添加这个特定的权限,我想知道:
我认为相机插件从未向
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>
关于这个挑战。我最近也面临同样的问题。感谢 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>
您正在构建本机应用程序还是混合应用程序?
本地人可以参考这个网站:
https://developer.android.com/reference/android/hardware/Camera.html