我首先使用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 =”