我正在尝试插件 cordova-plugin-ble-central ,以便将蓝牙设备与我的应用程序连接。我可以成功找到,连接和发现我的蓝牙设备,但是 ble.read()函数返回的每个结果都是一个空对象{}。 Android和iOS的结果相同。
我制作了一个小型应用程序,可以发现每个蓝牙设备,并尝试从中读取每个可用的值,但是无论扫描的设备是什么,我总是会得到空{}。
下面是我的脚本: JavaScript
document.addEventListener('deviceready', function(){
var device_id = '';
$('#output').prepend('<p>Device ready</p>');
$('#button_test_ble').click(function(){
$('#buttons').html('');
ble.scan([], 5, function(device) {
$('#buttons').prepend('<button type="button" class="btn btn-sm btn-default" data-device_id="'+device.id+'">'+device.name+'</button>')
}, function(error) {
$('#output').prepend('<p class="text-danger">scan: '+JSON.stringify(error)+'</p>');
});
});
$('#buttons').on('click', 'button', function(){
device_id = $(this).data('device_id');
$('#output').html('');
$('#button_connect').trigger('click');
});
$('#button_connect').click(function(){
ble.connect(device_id, function(r) {
let characteristics = '';
$.each(r.characteristics, function (t, item) {
if (item.properties.includes("Read")) {
ble.read(device_id, item.service, item.characteristic,
function(data){
$('#output').prepend('<p class="text-info">'+item.service+' '+item.characteristic+' - Read: '+JSON.stringify(data)+'</p>');
},
function(failure){
$('#output').prepend('<p class="text-danger">read: '+JSON.stringify(failure)+'</p>');
}
);
}
});
$('#output').prepend('<p class="text-info">connect: '+JSON.stringify(r)+'</p>');
}, function(error) {
$('#output').prepend('<p class="text-danger">connect: '+JSON.stringify(error)+'</p>');
});
})
$('#button_disconnect').click(function(){
ble.disconnect(device_id, function(error) {
$('#output').prepend('<p class="text-info">Disconnect: '+JSON.stringify(error)+'</p>');
}, function(error) {
$('#output').prepend('<p class="text-danger">Disconnect: '+JSON.stringify(error)+'</p>');
});
});
});
HTML
<div class='container'>
<div class='row'>
<div class='col-xs-12'>
<h1>Bluetooth Low Energy (BLE) Central Plugin</h1>
</div>
<div class='col-xs-4'>
<button type='button' class='btn btn-block btn-default' id='button_test_ble'>
Test BLE
</button>
</div>
<div class='col-xs-4'>
<button type='button' class='btn btn-block btn-default' id='button_connect'>
Connect BLE
</button>
</div>
<div class='col-xs-4'>
<button type='button' class='btn btn-block btn-default' id='button_disconnect'>
Disconnect
</button>
</div>
</div>
<div class='row'>
<div class='col-xs-12' id='buttons'></div>
</div>
<div class='row'>
<div class='col-xs-12' id='output'></div>
</div>
</div>
您能告诉我我哪里错了吗?
谢谢!