config.xml
... <preference name="android-build-tool" value="gradle" /> ... <preference name="phonegap-version" value="cli-7.0.1" /> ... <preference name="cordova.plugins.diagnostic.modules" value="CAMERA" /> .... <plugin name="cordova.plugins.diagnostic"/>
我的应用程序无法使用蓝牙,但是在安装时需要获得与蓝牙设备链接的权限
电话间隔记录
... ... Fetching plugin "cordova.plugins.diagnostic" via npm Installing "cordova.plugins.diagnostic" at "4.0.8" for android ... ...
如果我擦除
答案 0 :(得分:1)
cordova.plugins.diagnostic 插件确实使用了蓝牙功能,如您在自述文件中所见。
如果您包含带有说明的插件
Cordova / Phonegap插件来管理设备设置
它肯定会询问所有可能的权限。为什么仍然需要这样的插件?
答案 1 :(得分:0)
诊断插件使用npm postinstall hook运行hook script,该as documented应用config.xml
中的首选项来注释掉不需要的模块。
在安装插件之前将首选项添加到config.xml是至关重要的,否则将不会应用该首选项,并且将添加所有模块。这是因为,由于Cordova CLI挂钩的限制,此插件必须使用npm安装过程来应用模块首选项,并且在安装插件时,此插件将在Cordova CLI之前运行。如果您更改了首选项中指定的模块,则需要卸载然后将插件重新安装到您的项目中以应用更改。
所以您应该尝试:
cordova plugin rm cordova.plugins.diagnostic --nosave
npm uninstall cordova.plugins.diagnostic
cordova plugin add cordova.plugins.diagnostic --nosave
注意:如果您在项目或node_modules
中使用符号链接,则可能导致脚本失败,因为它无法解析正确的相对路径。
免责声明:我是Cordova Diagnostic插件的作者。
答案 2 :(得分:0)
我找到了一种方法,可以从 android.json
中删除几行代码来禁止在AndroidManifest.xml中添加权限删除:
{
"xml": "<uses-permission android:name=\"android.permission.BLUETOOTH\" />",
"count": 1
}
如果它仍在添加BLUETOOTH权限,则删除其中所有带有“ bluetooth”的行。