iOS蓝牙应用的后台处理,iOS蓝牙弹窗“xxx配件想要打开APP”


CBConnectPeripheralOptionNotifyOnConnectionKey: 在应用挂起后,与指定的peripheral成功建立连接,则发出通知
CBConnectPeripheralOptionNotifyOnDisconnectionKey: 在应用挂起后,如果与指定的peripheral断开连接,则发出通知
CBConnectPeripheralOptionNotifyOnNotificationKey: 在应用挂起后,指定的peripheral有任何通知都进行提示

是因为CBConnectPeripheralOptionNotifyOnNotificationKey

NSDictionary *connectOptions =

@{CBConnectPeripheralOptionNotifyOnConnectionKey:@YES,

CBConnectPeripheralOptionNotifyOnDisconnectionKey:@YES,

CBConnectPeripheralOptionNotifyOnNotificationKey:@NO};

将CBConnectPeripheralOptionNotifyOnNotificationKey的值设置为NO,即可避免持续的弹窗

Foreground-Only Apps

只支持前台运行的应用
大部分的apps,除非你要求后台运行,在进入后台后,应用会很快被挂起。在挂起状态下,应用无法处理蓝牙相关任务,无法接收蓝牙事件。直到重新回到前台。

在central端,只支持前台运行的应用,在进入后台或被挂起时就无法扫描和发现peripheral的广播包。如果是在peripheral端,广播将停止,任何central想访问characteristic的值都将收到异常信息。

不同情况下,默认的行为可能会影响你的程序。比如,在你与peripheral交互数据时,应用挂起(比如用户切到另一个应用)。这时连接可能会断开,你并不会收到通知,直到应用重新激活。

扫描二维码关注公众号,回复: 17276202 查看本文章

Take Advantage of Peripheral Connection Options

利用peripheral连接选项

只支持前台的蓝牙应用在挂起后发生的蓝牙事件会被系统排队,并在应用进入前台时把事件发给应用。当特定的central事件发生时,蓝牙库可以提供一种方式来提示用户。用户可以根据这些提示来决定是否激活应用。

若想利用使用这些提示,你需要在调用connectPeripheral:options: 方法时传入如下参数。
CBConnectPeripheralOptionNotifyOnConnectionKey: 在应用挂起后,与指定的peripheral成功建立连接,则发出通知
CBConnectPeripheralOptionNotifyOnDisconnectionKey: 在应用挂起后,如果与指定的peripheral断开连接,则发出通知
CBConnectPeripheralOptionNotifyOnNotificationKey: 在应用挂起后,指定的peripheral有任何通知都进行提示

参考链接:【转】ios蓝牙开发学习笔记(四)ios蓝牙应用的后台处理 -- 不错-CSDN博客

猜你喜欢

转载自blog.csdn.net/qq_43441647/article/details/134643548
今日推荐