通过bluetoothle插件在离子中发送超过20个字节

时间:2016-08-08 12:52:55

标签: cordova ionic-framework bluetooth-lowenergy

我尝试使用writeQ函数发送超过20个字节,但它对我没用。当然我认为我做错了是我的发送功能:

$scope.sendText = function (inputText) {
        var bytes = bluetoothle.stringToBytes(inputText);
        var encodedString = bluetoothle.bytesToEncodedString(bytes);
        if (inputText.length < 20) {
          bluetoothle.write(
            function (result) {
              alert("data transmitted" + JSON.stringify(result));
            },
            function (error) {
              alert("data transmission failed" + JSON.stringify(error));
            },
            {
              value: encodedString,
              service: $scope.sendCharService.serviceId,
              characteristic: $scope.sendCharService.uuid,
              type: "noResponse",
              address: $scope.deviceId
            }
          );
        }
        else {
          bluetoothle.writeQ(
            function (result) {
              alert("data transmitted" + JSON.stringify(result));
            },
            function (error) {
              alert("data transmission failed" + JSON.stringify(error));
            },
            {
              value: encodedString,
              service: $scope.sendCharService.serviceId,
              characteristic: $scope.sendCharService.uuid,
              type: "noResponse",
              address: $scope.deviceId
            }
          );
        }
      }

if语句块工作正常,但其他没有! 我错过了什么?

1 个答案:

答案 0 :(得分:0)

我对这个框架并不熟悉,但type: "noResponse"看起来很可疑。如果这是(GATT)无响应写入的代码,则它将不会超过20个字节,这是writeQ()的目的。

正确使用的程序是写长特征值