iPhone 4S上的Corebluetooth故障?

时间:2013-06-28 15:47:03

标签: iphone objective-c xcode bluetooth core-bluetooth

我一直在广泛测试iPhone 4s以及iPhone 5的BLE功能。

目前,我所做的就是从多个TI BLE密钥卡中提取广告数据,并使用UITableViewkCBAdvDataLocalName和{{1}填充ManufacturingData }为每个相应的设备。

基本上,当我提取广告数据时,我也会使用外围设备ServiceUUIDs并使用此功能填充UUID的{​​{1}}数组。 (即,如果找到新的datasource并且它不在tableview数组中,则将其添加到阵列并使用它来检索相应的外围设备。

使用iPhone 5可以完美运行。但是,当我使用iPhone 4S进行测试时(我已经测试了多个),UUID硬件会引入NULL datasource,因此阻止我向{{1}添加任何外围设备的信息数组。在我的控制台日志中,手机确实发现了每个外围设备,并显示其BLE和制造数据,但每个设备都有一个空UUIDs

我还使用完全相同的代码在4S和5上运行我的测试应用程序,它将在5而不是4S上运行。所以我想知道是否有人有同样的问题,无论是SDK或硬件中的错误,还是有一个已知的解决方法?任何反馈将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:3)

iOS 6中的问题是,在您实际连接到设备之前,不会生成UUID。 UUID是在iOS端为每个外围设备生成的,因此在使用不同的iOS设备时,您通常会看到同一外围设备的不同UUID。我经常检查UUID,然后如果它是NULL,我将取消名称。如果名称为NULL,那么我不会在设备列表中填充它。您的另一个选择是快速连接,然后断开与设备的连接。很大的时间黑客,但它会生成UUID,然后从那时起非空。据推测,这个问题将在下一版iOS中修复。