我目前正在开发一个在后台运行的 iOS 应用程序,它需要我使用蓝牙 4.0 来宣传和扫描设备。
在学习Corebluetooth.framework时,发现iOS开发者可以在周边设备上设置两种广告数据。
- 设备的本地名称。
- 服务 UUID。
我了解到如果外围设备在后台运行,但是本地名称不会被公布。此外,服务UUID将被设置到溢出区域,中心设备只能通过使用主动扫描才能获得。但是,主动扫描只能在前台运行。
此时我有一个问题。
如果中心设备和外围设备都在后台运行,中心设备是否可以获取外围设备在溢出区域设置的服务UUID? 那就是当两个iOS应用程序都在后台运行时,是否可以开发一个应用程序,每个应用程序都在后台互相广告和扫描?
最佳答案
由于您描述的原因,后台中央无法找到后台外围设备:
- 外围设备不宣传服务
- 中心只能通过服务过滤进行扫描(在后台)
这是 iOS 6 中的一个问题,直到现在我也没有看到任何人能够在 iOS 7 中做到这一点。 (正在进行进一步测试。)
关于iOS Corebluetooth 广告和扫描,同时应用程序在后台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19375913/