iOS13-Peripheral-Bluetooth遇到CBAdvertisementDataTxPowerLevelKey问题?解决篇

iOS13更新之后,app关于iPhone作为蓝牙Ble外围设备发送广播时直接崩了,当时内心也是崩溃的,因为在iOS13之前自己做智能硬件开发也已经三四年了,iOS的蓝牙一直很稳定(让安卓的同事羡慕)。

问题是:

“CBAdvertisementDataTxPowerLevelKey”这个字段从那冒出来的我没写啊,因为在iOS13之前写了也没用。然后各种找问题后来有个兄弟也加入了进来,我们各种查看API都没有用啊,内心是崩溃的,但是我秉持着作为一个程序猿不撞南墙不回头的信念试呀试、试呀试,突然找到自己最早写的蓝牙模块的代码,一试我去竟然可以没有0x0a,

什么鬼?屎黄屏凑乎看一下吧。

蓝牙模块的代码自己用了三年没有大动过。尼玛?为啥三年前写的测试代码可以???心中一万只羊驼在奔腾。使劲对比结果还是不应该啊,各种manager、uuid、API没毛病啊?一毛一样。问题在哪呢?

各种替换,然后到开始广播的时候奇迹出现了,你没有看错“startAdvertising”,就是临门一脚跟前的配置啥的每一毛钱关系。我的测试代码是广播3个长度为128bit的uuit可以不显示0x0a,然后那个大兄弟是怼了12个16bit的uuid也可以完美避开“CBAdvertisementDataTxPowerLevelKey”。

对于被这个突如其来的问题困扰的兄弟们,这个问题我只能说是可以解决的,具体怎么解决得看你们的代码怎么处理了,因为每个兄弟的代码风格习惯都不一样。试试更健康,大力出奇迹。

然后,在最后给各位做智能硬件开发的移动端程序猿一些建议,对于蓝牙通信有一套标准的蓝牙协议

只要以后硬件工程师按标准办事,不再按位取值,哪怕以后到iOS2020也不用担心蓝牙广播数据出问题。

哇咔咔,问题解决了,是不是很开心。再干一碗鸡汤吧!无规矩不成方圆,按规矩办事才能事半功倍。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章