使用带有BLE设备的cordova bluetoothSerial插件

时间:2015-11-05 08:48:01

标签: android cordova bluetooth bluetooth-lowenergy

我正在开发一款应用程序,可以向蓝牙低功耗设备发送非常简单的消息。

我使用我的开发平台(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地址之外的其他参数来连接方法?。

非常感谢

1 个答案:

答案 0 :(得分:1)

BluetoothSerial plugin在Android上使用蓝牙经典,因此它无法使用此用例。 (BluetoothSerial插件在iOS上使用BLE。)

尝试Bluetooth Low Energy Cordova plugin从Android或iOS连接到nRF8001。

查看bluefruitle example。它连接到Nordic BLE UART服务。