我已经发现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的所有更改.
解决方法
我不确定是否有任何区别,但我使用
phonegap run android
代替
cordova run android
根据文档,运行命令同时清理和构建…所以应该进行清理..(实际上我使用-V命令来获取一些额外的调试信息)
顺便说一句,我也遇到了很多麻烦,请参阅:Upgrade to phonegap 3.3.0
从空平台文件夹开始是我的尝试之一……而不是你应该确保它完全重建你的清单文件….
编辑29-1-2014
顺便说一下,这个CLI和phonegap 3.x问题的最佳解释可以在这里找到:http://devgirl.org/2013/09/05/phonegap-3-0-stuff-you-should-know/