首页 文章

没有蓝牙的蓝牙的phonegap权限

提问于
浏览
1

Phonegap

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"/>

我的应用程序无法使用蓝牙,但安装时需要获得与蓝牙设备链接的权限

phonegap log

...
...
Fetching plugin "cordova.plugins.diagnostic" via npm
Installing "cordova.plugins.diagnostic" at "4.0.8" for android
...
...

如果我擦除<preference name =“cordova.plugins.diagnostic.modules”value =“CAMERA”/>一切都保持不变

3 回答

  • 1

    cordova.plugins.diagnostic 插件 does 使用蓝牙功能,您可以从自述文件中看到 .

    如果您要包含带有说明的插件

    Cordova / Phonegap插件,用于管理设备设置

    它肯定会要求所有可能的权限 . 无论如何,你为什么需要这样的插件?

  • 0

    Diagnostic插件使用npm postinstall hook运行hook script,它在 config.xml 中应用首选项以注释掉不需要的模块 .

    因此as documented

    在安装插件之前将首选项添加到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插件的作者 .

  • 0

    我发现了一种通过从 android.json 删除几行代码来禁用AndroidManifest.xml中添加权限的方法

    去掉:

    {
              "xml": "<uses-permission android:name=\"android.permission.BLUETOOTH\" />",
              "count": 1
            }
    

    如果它仍然添加BLUETOOTH Permission删除其中包含“bluetooth”的所有行 .

相关问题