`Cordova 运行 android --device' 命令的 BLE 访问问题?

BLE access issue with `Cordova run android --device' command?

我正在使用 cordona/phonegap 构建一个简单的 BLE 应用程序。

我以BLE lock为例。 `cordova s​​erve' 一切正常:cordova 可以使用 Phonegap Android 应用程序扫描和访问可用的 BLE 设备。

但是,使用“cordova 运行 android --device”,我可以构建一个独立的 Android 应用程序,将应用程序下载到我的 Android 设备;但是当我在 Android 设备上执行下载的应用程序时,没有显示 BLE 设备。

是什么造成了这种差异?我是否需要做更多的事情才能使独立应用程序访问 Android BLE 功能?

您需要将 cordova bluetooth plugin 安装到 Cordova 应用程序中。

cordova plugin add cordova-plugin-ble-central

如果您使用的是 phonegap cli,请尝试

phonegap plugin add cordova-plugin-ble-central

PhoneGap Developer App 中的 运行 时,该应用程序可以正常工作,因为该应用程序中的蓝牙插件是 pre-installed。当你运行直接在Cordova中时,你需要自己安装插件。

在安装插件之前,您可以使用 Chrome 查看错误。要从您的 Android 设备上的应用程序获取堆栈跟踪: 在您的计算机上打开 Chrome,输入 chrome://inspect,选择您的设备。您应该会在控制台中看到这样的消息。

安装插件并重新部署项目后,扫描应该可以进行。

 cordova plugin add cordova-plugin-ble-central
 cordova run android --device

Don 的回答对我来说(几乎)完美,但我认为我需要添加更多内容以防万一。

插件安装

我实际使用的命令是this sitephonegap plugin add cordova-plugin-ble-central

在那之后,我有一个用 BLE 库创建的插件目录。

修改 config.xml (?)

我认为这一步不是必需的,但 the site 说这两行应该添加到 config.xml 中,但我可以在没有这一步的情况下构建应用程序。

<gap:plugin name="cordova-plugin-ble-central" source="npm" /> <preference name="phonegap-version" value="cli-6.1.0" />

执行

我可以使用此命令来构建和安装应用程序。

cordova platform add android cordova run android --device

问题原因

当我尝试一些BLE插件时,我想我安装了其他插件。结果,我的插件目录中有 com.megster.rordova.blecordova-plugin-ble-central。我还猜测 config.xml 和 package.json 可能有一些错误的信息没有包含正确的 BLE 库。

所以,当我清理安装 BLE 锁程序,安装 BLE 插件并构建应用程序时,一切似乎都很好。