如何使用cordova-plugin-bluetoothle响应读取或写入请求?

时间:2018-09-12 09:58:27

标签: ionic3 bluetooth-lowenergy cordova-plugins bluetooth-peripheral

中央-使用this的cordova插件进行扫描(don / cordova-plugin-ble-central)

外围设备-使用this Cordova插件来宣传我的服务(randdusing / cordova-plugin-bluetoothle)

所以我有两个离子(android)应用程序。我的目标是读取和写入在服务中初始化的特征。我已经使用don's插件尝试过reading的内置特性并获得了设备名称。现在,我想阅读我自己的特征的值。由于我为此使用了rrand的插件,因此他给了method

回复

响应读取或写入请求

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参数中获取信息。

所以当status == readRequested时,我希望会做类似的事情

    let p = {
      requestId:0,
      value:"5"
    };
    this.bluetoothLE.respond(p).then(onFullfilled => {
      onFullfilled => {
        console.log(onFullfilled);
      }
    }, onrejected => {
      console.log('respond err',onrejected);
    });

如果这行得通,我使用don's插件取回值“ 5”。 任何提示将不胜感激!至于为什么要使用两个插件,我发现don的ble-central插件比rrand的插件更易于实现。

更新: 现在我看到了代码的结构方式,似乎每次我初始化Peripheral时,它总是会恢复到原来的状态

{
  "request": true
  "restoreKey": "bluetoothleplugin"
}

所以我需要让它在构造函数上运行,但是我认为该方法只运行一次,所以我没有获得readRequested状态。马安

0 个答案:

没有答案