这是我的情景..
我有一个按照BLE协议通告动态数据的设备。有多个这样的设备为用户操作
问题 -
1)IOS可以扫描这些不断变化的广告数据,还是期望广告包非常静态?
2)我们可以创建一个定期扫描此类数据包的服务 - 可能每5分钟扫描一次吗?
3)在没有用户干预的情况下,可以在启动期间自动重启这样的服务吗?
答案 0 :(得分:0)
您无法在普通(非越狱)手机上创建服务。甚至不可能分发这样的东西(阅读app review guidelines)。当然,您可以在任何您想要的时间间隔内扫描BLE数据,但您的应用程序需要处于活动状态,或者需要执行Apple批准的操作才能在后台连接BLE设备。请注意,与任何其他后台应用程序一样,iOS可能会随时暂停或终止您的应用程序,并且您无能为力。
答案 1 :(得分:0)
标准BLE背景模式涵盖了您所描述的内容 - 核心蓝牙编程指南中对此进行了介绍。
您可以设置特定服务UUID的扫描,这将在后台继续。发现设备后,您的应用将启动到后台。
通知的确切安排无法控制 - 但根据我的经验,只要发现新的外围设备,您就会收到通知。一旦您发现了设备,您甚至可以在断开连接后立即启动连接(即超出范围) - 当设备重新进入范围时,iOS将自动重新连接到设备
为了使扫描或挂起的连接在重新启动后仍然存在,您必须配置状态恢复。 “核心蓝牙编程指南”中也对此进行了介绍。