欢迎所有开发者,
我面临着在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脚本。
如果我从你那里得到帮助,我将不胜感激。
谢谢
答案 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);