一,使用uni-app编译成安卓APP后报错writeBLECharacteristicValue:fail property not support
导致这个报错的原因是:因为APP调用蓝牙API发送指令过快导致,需要在每次调用蓝牙api发送指令的时候加延时器,这样就能解决这个问题(只发现安卓APP有这问题)
二、发现不了服务特征值
正常情况 :
不正常情况:
这个情况其实和上面一样,都是因为安卓APP蓝牙获取的时候一旦过快的调用蓝牙的获取信息API就会导致获取的服务不完整,解决的方法也是一样 加一个settimeout 就可以,不过这里的获取服务值需要的时间比较长一般最好设置在1秒以上
三,uni-app编译成小程序无论是 安卓 还是 ios 为什么没有上面的问题?
题外话:首先,安卓的蓝牙底层的响应历史遗留问题就是慢过ios系统的蓝牙的,所以为什么安卓手机的蓝牙耳机和iphone的蓝牙耳机,所以你会发现ios系统的蓝牙耳机玩游戏的延迟没有安卓的高。
因为突然发现编译成小程序不需要添加延时器也不会报fail property not support 调用api过快的报错,
这时候我就疑惑了,当我添加了定时器再编译成小程序后发现两者时间的差异并没有我设置的定时器那样是延迟1s,而是 > 1s .
所以我觉得是因为 微信小程序在蓝牙的调用上已经是自带了一个延时器,所以不会出现上述所说的问题。