lesimpleble如何开启蓝牙
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lesimpleble如何开启蓝牙相关的知识,希望对你有一定的参考价值。
3.1打开蓝牙,搜索设备,显示蓝牙列表:以上代码是实现搜索蓝牙设备并点击item选择对应蓝牙设备进行连接操作。
3.2需要用到两个BLE操作的工具类BluetoothLeClass和BleUtils(从网上找的开源代码),代码上有版权声明,直接上代码:
3.3链接获取对应需要操作的渠道,BLE和之前的蓝牙版本有所不同的地方在于它对蓝牙进行了进一步的封装,通常会分成三个通道:读 ,写,广播。 参考技术A 1.打开手机设置,进入蓝牙设置。
2.打开蓝牙开关,使蓝牙处于可用状态。
3.扫描设备,搜索到SimpleBLE设备并连接。
ionic蓝牙用法
1.开启本机蓝牙
ble.enable(
function() {
console.log("Bluetooth is enabled");
},
function() {
console.log("The user did *not* enable Bluetooth");
}
);
这方法是开启蓝牙功能的方法,在android上会弹出是否开启蓝牙的提示框,确定会开启蓝牙功能,iOS上有提示,但是点击确定也不会打开,好像是iOS的权限不允许,坑,
2.扫描蓝牙
ble.scan([], 10, function (device) {//成功的回调函数
$scope.devices = [];
$scope.devices.push(device);
$scope.$apply(function () {
$scope.devices.push(device);
});
return $scope.devices;
}, function(){
//失败的回调函数
}
);
蓝牙扫描的方法,第二个参数10指的扫描时间,单位是秒,device是扫描的设备
3.连接其他设备蓝牙
$scope.connectFun=function(device){
ble.connect(device.id, $scope.onConnected, $scope.onError);
}
连接蓝牙的方法,第一个参数是你扫描到的设备的id,后面的是成功和失败的回调
4.读取数据
readCounter = setInterval(function () {
ble.read(device.id, $scope.serviceUUID, $scope.counterCharacteristic, $scope.onDataReader, $scope.onReadError);
}, 1000);
读取已连接蓝牙的数据,我用了个定时器,1秒读一次,
device.id:蓝牙id,同第3的device.id
$scope.serviceUUID:蓝牙的UUID,具体不懂,每个蓝牙都有,但是这个值需要注意的地方就是它在android和ios上的写法不一样,比如在android上它的值是xxxxfff0-xxxx-xxxx-xxxx-xxxxxxxxxxx,那么它在ios上就是FFF0,这个可以用ionic.Platform.isAndroid()进行平台判断
$scope.counterCharacteristic:蓝牙的特性值,写法跟UUID类似,在android和ios的差异写法也跟UUID一样,刚开始我在android上写好功能后在iOS上连不上蓝牙问题就出在了这里
$scope.onDataReader:成功的回调,可以进行读取数据
$scope.onReadError:失败的回调
5.读取数据扩充
$scope.onDataReader=function(buffer){
//buffer就是蓝牙读取的数据,但是需要转换才能被引用
var data = new Uint8Array(buffer);//Uint8Array对象:8 位无符号整数值的类型化数组。内容将初始化为 0。如果无法分配请求数目的字节,则将引发异常。
//这里可以一步步打印data然后按需要转出所需的数据
//将值赋值给页面上绑定的变量时,如果变量没有变化,试着用
$scope.$apply(function(){
//将计算后的数据给变量赋值,要用$apply涉及到了ng的脏值检查机制,有兴趣可以去搜搜相关资料
})
}
6.断开蓝牙
ble.disconnect(device.id, function(){
//do something
}, function(){
//do something
});
功能相似的话,记得断开后停止定时器
以上是关于lesimpleble如何开启蓝牙的主要内容,如果未能解决你的问题,请参考以下文章