电话间隙蓝牙插件不起作用

Phonegap bluetooth plugin not working

本文关键字:插件 不起作用 电话间 间隙 电话      更新时间:2023-09-26

第一次在这里发海报,所以如果这个问题问错了或者有任何问题,我很抱歉。

我正在开发一个Phonegap应用程序,我需要能够在平板电脑(在这种情况下为Android)和Win CE PC之间设置蓝牙连接。目前,我正在尝试让蓝牙部分在平板电脑上工作,并且我正在使用您可以在 https://github.com/tanelih/phonegap-bluetooth-plugin对于妈妈,我只是尝试启用和禁用设备上的蓝牙。

在我的蓝牙页面.js文件中,我使用以下方法

window.bluetooth.prototype.enable(bluetoothTestSucces(),bluetoothTestFail());

蓝牙测试

成功和蓝牙测试失败功能只显示警报,没有别的。如果我正确理解了phonegap插件的工作原理,这将在我的蓝牙文件中使用以下代码.js

Bluetooth.prototype.enable = function(onSuccess, onError)

{
    exec(onSuccess, onError, "Bluetooth", "enable", []);
}

哪个调用

private void enable(JSONArray args, CallbackContext callbackCtx)

{       
    try
    {
        _bluetooth.enable();
        callbackCtx.success();
    }
    catch(Exception e)
    {
        this.error(callbackCtx, e.getMessage(), BluetoothError.ERR_UNKNOWN);
    }
}

在我的蓝牙插件.java文件中。

如果 java 文件返回 Succes 蓝牙TestSucces() 被使用,如果 java 文件返回错误 bluetoothTestFail() 则使用。

但是由于某种原因,它同时运行两者,并且无法在我的设备上打开蓝牙。我几乎可以肯定我忘记了文件的链接,或者在某处链接错误。但是我已经按照插件中包含的说明进行操作。

我已经在我的AndoridManifest文件中包含了蓝牙权限,该文件位于我的应用程序的根目录中

我已经将插件包含在我的配置.xml文件中,该文件位于 res/xml 中

我在设备就绪事件后需要插件,如下所示

document.addEventListener("deviceready", onDeviceReady, false);

函数在设备上准备好(){

window.bluetooth = cordova.require("cordova/plugin/bluetooth");

}

谁能告诉我如何解决这个问题或我做错了什么?

更新 1

在完成之后能够使用 Eclipse 进行一些调试我收到以下错误:未捕获的类型错误:无法调用未定义的方法"启用"。

更新 2

我想我把方法叫错了,它应该是window.bluetooth.enable而不是window.bluetooth.prototype.enable。现在我收到以下错误;

"

蓝牙绑定器为空",标签为"蓝牙适配器"

此外,当我在模拟器上运行它时,它只显示蓝牙TestFail()功能(应该是这样),但是当我在设备上运行它时没有任何反应,没有调用任何函数,也没有打开/关闭蓝牙

更新 3

我已经通过 eclipse 在我的设备上作为应用程序运行了我的项目,现在它工作正常,没有问题。但是当我使用phonegap将其转换为应用程序时,它不再起作用。

谢谢

马蒂恩

PS:对于任何语言错误,我很抱歉,英语不是我的母语。

编辑:忘记包含一些代码

您似乎正在通过prototype调用该方法。如果您查看包含的bluetooth.js文件,您会发现包含以下内容的行:

var bluetooth = new Bluetooth();
module.exports = bluetooth;

这基本上意味着插件"导出"一个Bluetooth实例,您可以从中直接调用方法。

在你的帖子中,你说你也在传递回调:

window.bluetooth.prototype.enable(bluetoothTestSucces(),bluetoothTestFail());
这意味着将调用

bluetoothTestSuccesbluetoothTestFail 函数,并传入其返回值。

尝试像这样调用该方法,看看它是否有效。

window.bluetooth.enable(bluetoothTestSucces, bluetoothTestFail);

希望这有帮助!

编辑

很高兴听到你至少以某种方式让它工作。

我不确定您使用PhoneGap将其转换为应用程序是什么意思?我自己只通过 eclipse 运行过 Android 项目,所以我不确定是什么导致了问题。

您可以尝试将一些基本的调试与console.log添加到bluetooth.js文件中,以查看是否正在调用插件方法。你也可以对Java文件做同样的事情,看看这是否有助于你追踪罪魁祸首。

希望你让它工作。