Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.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 CoreBluetooth中央管理器无法在后台发现外围设备_Ios_Bluetooth_Background Process_Core Bluetooth_Bluetooth Lowenergy - Fatal编程技术网

Ios CoreBluetooth中央管理器无法在后台发现外围设备

Ios CoreBluetooth中央管理器无法在后台发现外围设备,ios,bluetooth,background-process,core-bluetooth,bluetooth-lowenergy,Ios,Bluetooth,Background Process,Core Bluetooth,Bluetooth Lowenergy,我有一个应用程序正在利用蓝牙4.0 LE。该应用程序允许设备充当中央和外围设备 我希望应用程序在后台运行。我已经在info.plist中包含了带有“bluetooth central”和“bluetooth peripheral”的UIBackgroundModes 我正在两个启用蓝牙4.0 LE的不同设备上运行该应用程序 当两台设备都在前台运行时,一切都能正常工作,信息双向传递 当一台设备在前台运行,另一台在后台运行时,后台运行的设备可以扫描和播发,但无法发现后台运行的另一台设备。在前台运行的

我有一个应用程序正在利用蓝牙4.0 LE。该应用程序允许设备充当中央和外围设备

我希望应用程序在后台运行。我已经在info.plist中包含了带有“bluetooth central”和“bluetooth peripheral”的UIBackgroundModes

我正在两个启用蓝牙4.0 LE的不同设备上运行该应用程序

当两台设备都在前台运行时,一切都能正常工作,信息双向传递

当一台设备在前台运行,另一台在后台运行时,后台运行的设备可以扫描和播发,但无法发现后台运行的另一台设备。在前台运行的设备能够发现并连接到在后台运行的设备

通读之后,我知道连接到另一个设备并以两种方式共享信息是可能的

我可以根据要求发布更多信息。多谢各位

当外围应用程序处于后台时,播发的服务会被推送到“溢出区”,而外围设备名称根本不会被播发。此外,广告间隔被提高。理论上,iOS BLE堆栈应该处理这种情况并请求溢出区域数据,但它没有这样做。同时,在后台中心上的扫描速度也会减慢,此外,它还需要特定的服务uuid才能工作。(您不能在后台使用
nil
服务进行扫描)

因此,不可能在接地中心上扫描接地设备


这不是一个bug就是一个特性,只有苹果知道。打开雷达,告诉他们你的问题。我们做得越多,得到回应的机会就越大。

谢谢。在研究了几天后,我向苹果提交了一份TSI。当我发现问题时,我会更新这篇文章。TSI?我还没见过这个词。技术支持事件。它基本上是向苹果工程师寻求深入的帮助(通常是代码级的)。@tagabek你们在TSI方面运气好吗?我想知道,当应用程序也在后台时,是否可能有一个用于检测设备的后台中心。iOS 7.1的iBeacon改进是否改变了这一点?