蓝牙,日常你用的多吗?视频
上班路上戴着蓝牙耳机听音乐、看视频开发
打开蓝牙分享我的热点给小伙伴们class
解锁共享单车时,打开蓝牙就能迅速解锁service
......技术
BLE—蓝牙低能耗技术,方便了咱们的生活,可是开发者在开发过程当中却遇到了很多坑,尤为对小白用户来讲坑真的太多了,都是安卓、iOS系统惹的祸。经验
今天给你们分享一个解决BLE那些坑的经验,但愿能帮助更多人。项目
项目中用到BLE模块时,要注意如下问题:分享
❶ 用示例代码安卓系统扫描蓝牙设备就没法成功,而苹果则没问题。开发者
✓ 解决办法:将serviceUUIDs: ['', '']改成serviceUUIDs: []便可。一次扫描不出来能够多扫描几回。di
❷ 安卓和苹果的设备UUID不同,安卓为xx:xx:xx:xx:xx:xx格式,苹果为GUID格式。
✓ 解决办法:以你扫描获取的UUID访问设备就好了。
❸ 安桌和苹果的服务UUID和服务特征CharacteristicsUUID不同(服务UUID和服务特征CharacteristicsUUID是父子关系)。
安卓为GUID格式,苹果为短格式。二者扫描出的服务数也不同,苹果只扫描出用户能调用的,安卓会把系统级的也扫描出来,安卓通常第3个服务是用户能调用的。
✓ 解决办法:以你扫描获取的获取的服务UUID的服务特征CharacteristicsUUID访问就好了。
❹ 最重要的一点,也是为何调用老不对的问题。
✓ 解决办法:无论你是否知道设备UUID,服务UUID,蓝牙是否打开。请必定要按步骤调用:扫描设备->链接设备->获取全部服务UUID
->服务UUID对应的全部服务特征CharacteristicsUUID。这些步骤走完了,才能调用服务UUID和对应的服务特征CharacteristicsUUID。