【发布时间】:2013-09-07 16:25:19
【问题描述】:
我有一个 Phonegap 应用,我目前正在为 Android 开发和测试。问题是,当我发布到设备时,Android Manifest 中充满了我没有请求的权限请求。
我已经发现 Phonegap 插件(请参阅“添加功能”下的 this docs page)与它有关。如果你安装了Camera这样的插件,那么PhoneGap会自动将相关权限添加到AndroidManifest。所以我卸载了所有不需要的 Phonegap 插件,这些权限也消失了。
到目前为止一切顺利。
问题是,我的 Android Manifest(以及项目 /Plugins 目录中名为“android.json”的文件)仍然包含许多不需要的功能:
<uses-permission android:name="android.permission.RECORD_VIDEO" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
由于我的应用程序是关于预算的,“录制视频”权限会向任何理智的用户暗示这是一个试图破坏他们隐私的邪恶的鬼鬼祟祟的应用程序。
如何摆脱这些功能请求?我已经试过了……
- 将
<preference name="permissions" value="none" />添加到config.xml。 - 卸载所有相关的 Phonegap 插件。我什至卸载了一个插件 AudioHandler,它似乎是在我创建项目时预装的。
当然,我可以在发布最终版本之前从 AndroidManifest.xml 中手动删除这些内容。但我想要一个更结构化的解决方案,因为我使用“cordova run android”在设备上进行测试,这会覆盖对 AndroidManifest.xml 和 android.json 的所有更改。
【问题讨论】:
-
更奇怪的是,RECORD_VIDEO 权限并没有出现在设备上应用程序的设置中,但是 ACCESS_COARSE_LOCATION 和 ACCESS_FINE_LOCATION 确实出现了。
-
您将它们从清单文件中删除,这是正确的做法。 eclipse有一个很好的界面,或者intelli
-
也可以在卸载插件后清理你的项目
-
使用 Phonegap BUILD 的任何人的注意事项:我尝试了我的 config.xml 文件中的 [preference name="permissions" value="none"] 设置,它工作正常。
标签: android permissions cordova config