我正在开发一款应用程序,可以向蓝牙低功耗设备发送非常简单的消息。
我使用我的开发平台(Galaxy S5 Android 4.4)测试,借助Nordic Semi的nRF UART v2.0应用,可以在设备(Arduino板和nRF8001屏蔽)之间建立正确的通信。它工作得很好,因为我可以从一个设备发送和接收消息到另一个设备,所以我对产品的这一面非常有信心。
我的应用程序基于Cordova的bluetoothSerial插件,但未成功与BLE设备建立连接。这是代码:
var app = {
initialize: function() {
this.bindEvents();
},
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
onDeviceReady: function() {
document.getElementById('messagebox').innerHTML = "Device Ready";
app.isBluetoothEnabled();
},
isBluetoothEnabled: function() {
document.getElementById('messagebox').innerHTML = "is Bluetooth Enabled";
bluetoothSerial.isEnabled(
function() {
document.getElementById('messagebox').innerHTML = "Bluetooth is enabled";
app.deviceConnect();
},
app.bluetoothEnable()
);
},
bluetoothEnable: function() {
bluetoothSerial.enable(app.deviceConnect(),
function() {
document.getElementById('messagebox').innerHTML = "User did not want to connect.";
});
},
deviceConnect: function() {
bluetoothSerial.connect('DB:A2:49:84:F9:32',
function() {
document.getElementById('messagebox').innerHTML = "Connected to device";
},
function() {
document.getElementById('messagebox').innerHTML = "Not connected to device";
});
}
};
app.initialize();
'消息框'元素仅用于检查应用程序停止的每个步骤。
我尝试了.list和.discoverUnpaired方法。两者都在工作(.list只列出已经配对的设备)和discoverPaired方法我可以看到我的设备及其MAC地址,但.connect从未工作,即使在connectInsecure模式下我也没有成功将我的设备配对蓝牙参数中的Android操作系统(在尝试与应用程序建立连接之前,我不知道是否需要它。)
有人能告诉我,我是否误解了bluetootSerial的工作方式或(甚至是BLE)?我是否必须传递除MAC地址之外的其他参数来连接方法?。
非常感谢
答案 0 :(得分:1)
BluetoothSerial plugin在Android上使用蓝牙经典,因此它无法使用此用例。 (BluetoothSerial插件在iOS上使用BLE。)
尝试Bluetooth Low Energy Cordova plugin从Android或iOS连接到nRF8001。
查看bluefruitle example。它连接到Nordic BLE UART服务。