Я экспериментирую с плагином cordova-plugin-ble-central , чтобы подключить устройство Bluetooth к моему приложению. Я могу успешно найти, подключить и обнаружить мое устройство Bluetooth, но каждый результат, возвращаемый функцией ble.read () , является пустым объектом {}. Одинаковый результат как для Android, так и для iOS.
Я создал небольшое приложение, которое обнаруживает каждое устройство Bluetooth и пытается прочитать все доступные значения из них, но я всегда получаю пустой {} независимо от того, какое устройство сканировало.
Ниже мой сценарий:
1010 * 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>
Не могли бы вы сообщить мне, где я не прав?
Спасибо!