Central - используется этот плагин Cordova для сканирования (don / cordova-plugin-ble-central)
Периферийный - используется этот Cordova плагин для рекламы моей услуги(randdusing / cordova-plugin-bluetoothle)
Итак, у меня есть два ионных (android) приложения.Моя цель - прочитать и написать характеристику, которую я инициализировал в своем сервисе.Я уже пробовал читать встроенную характеристику с помощью плагина don и получил имя устройства.Теперь я хочу прочитать значение моей собственной характеристики.Поскольку я использовал для этого плагин Рранда, он дает этот метод ,
ответить
Ответить на запрос на чтение или запись
bluetoothle.respond(success, error, params);
Параметры
//This was a read
var params = {
"requestId":0,
"value":"UmVhZCBIZWxsbyBXb3JsZA==" //Read Hello World
};
Вот как я запускаю свое периферийное устройство для рекламы
this.platform.ready().then((readySource) => {
this.sourceToast(readySource);
this.bluetoothLE.initialize(this.paramsInit).then(paramsInitResult => {
this.bleInitialize = paramsInitResult;
this.bluetoothLE.initializePeripheral(this.paramsInitPeripheral).then(peripheral => {
this.bleInitializePeripheral = peripheral;
this.bluetoothLE.enable();
this.bluetoothLE.getAdapterInfo().then(adapter => {
this.device = adapter;
this.bluetoothLE.addService(this.paramsService).then(params => {
this.bleAddService = params;
});
});
});
});
});
Теперь моя проблема в том, как я буду прослушивать статус readRequested тотможно получить из initPeripheral params.
Так что, когда status == readRequested, я надеюсь сделать что-то вроде этого
let p = {
requestId:0,
value:"5"
};
this.bluetoothLE.respond(p).then(onFullfilled => {
onFullfilled => {
console.log(onFullfilled);
}
}, onrejected => {
console.log('respond err',onrejected);
});
И если это сработает, я вернусь к значению "5", используяДон плагин.Любой совет будет принята с благодарностью!Что касается того, почему я использовал два плагина, я считаю, что плагин don-ble-проще реализовать, чем Rrand.
Обновление: Теперь я вижу, что, как я структурировал свой код, кажется, чтокаждый раз, когда я инициализирую Peripheral, он всегда возвращается к этому
{
"request": true
"restoreKey": "bluetoothleplugin"
}
Так что мне нужно, чтобы он работал на конструкторе, но дело в том, что я думаю, что метод запускается только один раз, и поэтому я не получаю readRequestedстатус.Maan