当应用程序在后台扫描蓝牙连接外围设备时

时间:2017-10-30 11:10:48

标签: ios objective-c bluetooth-lowenergy core-bluetooth

iOS 11:当应用程序在后台CBCentralManager委托方法中执行了发现外设,didConnectPeripheral,didFailToConnectPeripheral,didDisconnectPeripheral未调用。

1 个答案:

答案 0 :(得分:2)

核心蓝牙后台执行模式。

如果您的应用需要在后台运行以执行某些与蓝牙相关的任务,则必须在其信息属性列表(Info.plist)文件中声明它支持核心蓝牙后台执行模式。

当你的应用声明这个时,系统会将其从暂停状态唤醒,以允许它处理与蓝牙相关的事件。这种支持对于与定期提供数据的蓝牙低功耗设备(如心率监测器)进行交互的应用非常重要。

应用程序可以声明两种核心蓝牙后台执行模式 - 一种用于实现核心角色的应用程序,另一种用于实现外围角色的应用程序。如果您的应用程序同时实现这两个角色,则可能会声明它支持两种后台执行模式。通过将UIBackgroundModes键添加到Info.plist文件并将键的值设置为包含以下字符串之一的数组来声明核心蓝牙后台执行模式:

1)bluetooth-central-该应用程序使用Core Bluetooth框架与蓝牙低功耗外围设备进行通信。

2)bluetooth-peripheral-该应用程序使用Core Bluetooth框架共享数据。

关注Apple开发者文档链接。

https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html

<强>更新

蓝牙 - 外围设备后台执行模式 要在后台执行某些外围角色任务,您必须在应用程序的Info.plist文件中包含UIBackgroundModes键和bluetooth-peripheral值。当此键值对包含在应用程序的Info.plist文件中时,系统会唤醒您的应用程序以处理读取,写入和订阅事件。

除了允许您的应用程序被唤醒以处理来自连接中心的读取,写入和订阅请求之外,核心蓝牙框架允许您的应用在后台状态下进行广告宣传。

也就是说,您应该知道,当您的应用处于后台时,广告的运营方式与应用在前台时的运营方式不同。特别是,当您的应用在后台广告时。

可能对你有用!!