第一次在这里发帖,所以如果这个问题被问到不正确或有任何问题,我很抱歉。
我正在开发一个 phonegap 应用程序,我需要能够在平板电脑(在本例中为 android)和 Win CE PC 之间建立蓝牙连接。目前我正试图让蓝牙部分在平板电脑上工作,我正在使用你可以在https://github.com/tanelih/phonegap-bluetooth-plugin找到的插件 而对于 momemt 我只是尝试启用和禁用设备上的蓝牙。
在我的 bluetoothpage.js 文件中,我使用以下方法
window.bluetooth.prototype.enable(bluetoothTestSucces(),bluetoothTestFail());
bluetoothTestSucces 和 bluetoothTestFail 函数只显示一个警报,没有别的。如果我正确理解 phonegap 插件的工作原理,这将在我的 bluetooth.js 文件中使用以下代码
Bluetooth.prototype.enable = function(onSuccess, onError)
{
exec(onSuccess, onError, "Bluetooth", "enable", []);
}
调用
私人无效启用(JSONArray args,CallbackContext callbackCtx)
{
try
{
_bluetooth.enable();
callbackCtx.success();
}
catch(Exception e)
{
this.error(callbackCtx, e.getMessage(), BluetoothError.ERR_UNKNOWN);
}
}
在我的 BluetoothPlugin.java 文件中。
如果 java 文件返回成功,则使用 bluetoothTestSucces(),如果 java 文件返回错误,则使用 bluetoothTestFail()。
但由于某种原因,它同时运行并且没有在我的设备上打开蓝牙。我几乎可以肯定我忘记了文件的链接或在某处链接错误。但我已按照插件中包含的说明进行操作。
我已将蓝牙权限包含在我的 AndoridManifest 文件中,该文件位于我的应用程序的根目录中
我已将插件包含在我的 config.xml 文件中,该文件位于 res/xml
我在 deviceready 事件之后需要插件,如下所示
document.addEventListener("deviceready", onDeviceReady, false);
函数 onDeviceReady() {
window.bluetooth = cordova.require("cordova/plugin/bluetooth");
}
谁能告诉我如何解决这个问题或我做错了什么?
更新 1
在最终能够使用 eclipse 进行一些调试之后,我得到了以下错误: Uncaught TypeError: Cannot call method 'enable' of undefined.
更新 2
我想我调用了错误的方法,它应该是 window.bluetooth.enable 而不是 window.bluetooth.prototype.enable。现在我收到以下错误;
带有标签“BluetoothAdapter”的“蓝牙绑定器为空”
此外,当我在模拟器上运行它时,它只显示 bluetoothTestFail() 函数(它应该是这样)但是当我在设备上运行它时没有任何反应,没有调用任何函数,也没有打开/关闭蓝牙
更新 3
我已经通过 eclipse 作为我设备上的应用程序运行了我的项目,现在它运行良好,没有问题。但是,当我使用 phonegap 将其转换为应用程序时,它不再起作用了。
谢谢
马汀
PS:对于任何语言错误,我很抱歉,英语不是我的母语。
编辑:忘记包含一些代码