【发布时间】:2013-06-28 15:47:02
【问题描述】:
我一直在广泛测试 iPhone 4s 和 iPhone 5 的 BLE 功能。
目前,我所做的只是从多个 TI BLE 密钥卡中提取广告数据,并为每个相应的设备使用 kCBAdvDataLocalName、ManufacturingData 和 ServiceUUIDs 填充 UITableView。
基本上,当我拉入广告数据时,我也在拉入外围设备的UUID,并使用它来填充tableview 的datasource 数组。 (即,如果找到新的UUID 并且它不在datasource 数组中,则将其添加到数组中并使用它来检索相应的外围设备)。
使用 iPhone 5 可以完美运行。但是,当我使用 iPhone 4S 进行测试(并且我已经测试了多个)时,BLE 硬件会拉入 NULL UUIDs,因此阻止我将任何外围设备的信息添加到 datasource 数组中。在我的控制台日志中,手机确实发现了每个外围设备,并显示了它的localname 和制造数据,但每个设备都有一个空的UUID。
我还使用完全相同的代码同时在 4S 和 5 上运行了我的测试应用程序,它可以在 5 而不是 4S 上运行。所以我想知道是否有人遇到过同样的问题,是否是 SDK 或硬件中的错误,或者是否有已知的解决方法?任何反馈将不胜感激,谢谢。
【问题讨论】:
-
我认为它并没有在第一次发现时提供所有信息......我注意到,至少在我的 iPhone 4S 上,有时 Adv Data 是零......所以在添加它之前在我发现的设备数组中,我检查它是否有名称、UUID 和每个广告数据......如果没有,我不添加它,但它会在 didDiscoverPeripheral 中再次传递,这次添加了数据(更新)到它。
标签: iphone objective-c xcode bluetooth core-bluetooth