Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当应用程序在后台扫描蓝牙连接外围设备时_Ios_Objective C_Bluetooth Lowenergy_Core Bluetooth - Fatal编程技术网

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

Ios 当应用程序在后台扫描蓝牙连接外围设备时,ios,objective-c,bluetooth-lowenergy,core-bluetooth,Ios,Objective C,Bluetooth Lowenergy,Core Bluetooth,iOS 11:后台CBCentralManager中的应用程序委托方法未调用DidDiscoveryPeripal、DidConnectPeripal、DidFailToConnectionPeripal、DidDisconnectPeripal。核心蓝牙后台执行模式 如果您的应用程序需要在后台运行以执行某些与蓝牙相关的任务,则必须在其信息属性列表(Info.plist)文件中声明它支持核心蓝牙后台执行模式。 当您的应用程序声明此消息时,系统会将其从挂起状态唤醒,以允许其处理与蓝牙相关的事件。这

iOS 11:后台CBCentralManager中的应用程序委托方法未调用DidDiscoveryPeripal、DidConnectPeripal、DidFailToConnectionPeripal、DidDisconnectPeripal。

核心蓝牙后台执行模式

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

当您的应用程序声明此消息时,系统会将其从挂起状态唤醒,以允许其处理与蓝牙相关的事件。这种支持对于与蓝牙低能耗设备(如心率监视器)交互的应用程序非常重要,蓝牙低能耗设备定期提供数据

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

1) bluetooth central应用程序使用核心蓝牙框架与蓝牙低能耗外围设备通信

2) 蓝牙外围设备应用程序使用核心蓝牙框架共享数据

下面是苹果开发者文档链接

更新:

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

除了允许唤醒您的应用程序以处理来自连接的中央服务器的读、写和订阅请求外,核心蓝牙框架还允许您的应用程序在后台状态下进行广告。

这就是说,你应该意识到,当你的应用程序在后台时,广告的运作方式不同于当你的应用程序在前台时。特别是当你的应用程序在后台做广告时


也许它对你有用

请显示您的codemyCentralManager=[[CBCentralManager alloc]initWithDelegate:自队列:调度\u获取\u全局\u队列(QOS\u类\u后台,0)];-(void)CentralManagerDipDateState:(CBCentralManager*)central{if(central.state==CBCentralManagerStatePoweredOn){NSLog(@“BLE ON”);[myCentralManager ScanForPeripherSwithServices:nil选项:@{CBCentralManagerScanOptionAllowDuplicatesKey:@YES}];}请编辑您的问题以包含您的代码,格式正确。请注意,您不能在后台使用重复项扫描键。我们已经在Info.pList中使用了上述后台键,但这对我没有帮助。请遵循此文档: