使用ngCordova / Ionic中的密码连接/读取BluetoothLE设备

时间:2016-07-12 13:01:53

标签: angularjs ionic-framework bluetooth-lowenergy ibeacon ngcordova

我首先使用https://github.com/randdusing/cordova-plugin-bluetoothle/扫描设备,然后再连接/读取/写入数据。

我必须连接的设备受密码保护,但没有输入或参数包含它。

我与设备建立连接(没有密码),一切似乎都没问题,但尝试从不同的设备读取数据是不可能的。 读取的数据是编码的(base64),在将其转换为String后,结果为“” 有关于此的任何暗示吗?

连接:

$rootScope.connect = function(addressParam) {
var params = {address: addressParam};

$cordovaBluetoothLE.connect(params).then(null, function (obj) {
  console.log("Conexión error " + obj.status + " con dirección: " + obj.address);
  $rootScope.close(addressParam);
}, function (obj) {
  console.log("Conexión success " + obj.status + " con dirección: " + obj.address);
  $rootScope.isCon(addressParam);
  if(obj.status==="disconnected" || obj.status==="undefined" ){
    $rootScope.connect(addressParam);
  }
});
}

读:

$scope.readChar = function(){
  var params = {address: $scope.device, service: $scope.service.uuid, characteristic: $scope.characteristic, timeout: 5000};
  $cordovaBluetoothLE.read(params).then(function(obj) {
    $scope.leer = true;
    console.log("COMENZANDO LECTURA ");
    $scope.valueobj = obj.value;
    $scope.convertValue();
  }, function(obj) {
    console.log("Error al leer" + obj);
  });
}

阅读后的转换

$scope.convertValue = function(){
  $scope.bytesobj = $cordovaBluetoothLE.encodedStringToBytes($scope.valueobj);
  $scope.strobj = $cordovaBluetoothLE.bytesToString($scope.bytesobj);
}
});

结果:没有错误:

$ scope.bytesobj - > [0,0]

$ scope.strobj - > “

$ scope.valueobj - > “AAA =”

0 个答案:

没有答案