我有一个低功耗蓝牙 (BLE) 应用程序,它通过开放连接与 BLE 设备进行通信。我正在使用 CoreBluetooth 库。将 iPhone 升级到 iOS 7,将 XCode 升级到 XCode 5 后。我重新编译了低功耗蓝牙应用程序,发现它不再工作。连接成功。发现服务和特征没有任何问题。即使是特征的读取似乎也很好。但写入应在 BLE 设备上触发某些操作的特征没有任何效果。
如果我使用 XCode 将相同的应用程序下载到另一台 iPhoneiOS 6,一切正常。所以我可以确定问题可能是 iOS 7 而不是 XCode 5 的重新编译。 XCode 5 甚至可以从同一个项目为 iOS 6 设备准备不同的应用程序,因为我可以看到该应用程序的外观在两个设备上不同。
那么从 iOS 6 到 iOS 7 发生了什么变化导致写入特征失败呢?
我遇到了同样的问题,问题出在固件而不是你的 iOS 代码上。 iOS6对特征类型比较宽松,但iOS7则更加严格。
必须显式设置特性的 WriteWithoutResponse 标志才能与 iOS7 配合使用
我在创业时使用 RedBear 的 Biscuit for Arduino 来测试我们的产品,它在 iOS6 上运行得很好,但当应用程序迁移到 iOS7 时,写入会悄悄失败。
更详细的讨论在这里(参见 Mattj949 的更新)@https://redbearlab.zendesk.com/entries/25031402-BLE-Mini-and-iOS-7 https://redbearlab.zendesk.com/entries/25031402-BLE-Mini-and-iOS-7有一些关于这个问题的Apple Threads,http://lists.apple.com/archives/bluetooth-dev/2013/Aug/msg00046.html http://lists.apple.com/archives/bluetooth-dev/2013/Aug/msg00046.html and http://lists.apple.com/archives/bluetooth-dev/2013/Aug/msg00050.html http://lists.apple.com/archives/bluetooth-dev/2013/Aug/msg00050.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)