通过蓝牙将数据从python发送到cordova app

时间:2017-05-05 17:57:10

标签: android python cordova bluetooth phonegap

欢迎所有开发者,

我面临着在Python与cordova(Phonegap)App之间建立沟通渠道的问题。

我有一个python脚本,只有当我通过蓝牙通过另一个python脚本接收数据时才发送数据。

但我无法在cordova app中接收数据的任何解决方案。

这是python脚本。

import bluetooth

bd_addr = "01:23:45:67:89:AB"

port = 1

sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
sock.connect((bd_addr, port))

sock.send("hello!!")

sock.close()

我想创建一个将在Android手机中接收数据的cordova脚本。

如果我从你那里得到帮助,我将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

修改

如果您想使用套接字连接和传输数据,可以尝试使用此插件。

https://www.npmjs.com/package/cordova-plugin-networking-bluetooth

安装:

cordova plugin add cordova-plugin

连接示例:

var uuid = '94f39d29-7d6d-437d-973b-fba39e49d4ee';

networking.bluetooth.connect(device.address, uuid, function (socketId) {
    // Profile implementation here. 
}, function (errorMessage) {
    console.log('Connection failed: ' + errorMessage);
});

从套接字接收数据的示例:

networking.bluetooth.onReceive.addListener(function (receiveInfo) {
      if (receiveInfo.socketId !== socketId) {
          return;
      }

      // receiveInfo.data is an ArrayBuffer. 
});

<强>原始

我之前使用过这个插件:

https://github.com/don/BluetoothSerial

安装:

cordova plugin add cordova-plugin-bluetooth-serial

您的手机必须启动连接,然后您可以使用subscribe方法收听数据。然后将此数据传递给回调函数。

在从python脚本发送的数据中,您需要包含一个分隔符,例如新行,以便插件知道它何时读完数据。用法是这样的:

function connectSuccess(){

    //The first argument is the delimiter to stop reading data at

    bluetoothSerial.subscribe('\n', function (data) {
        console.log(data);
    }, failure);

}

function failure(e){

    console.log('Subscribe failure: ' + e);

}

function connectFailure(e){

    console.log('Connect failure: ' + e);

}

bluetoothSerial.connect(macAddress_or_uuid, connectSuccess, connectFailure);