iOS-在后台扫描可扩展设备

iOS-在后台扫描可扩展设备,ios,bluetooth-lowenergy,Ios,Bluetooth Lowenergy,我注意到ScanFor外围设备服务在后台不起作用。我尝试了以下方法: 指定的UUID和选项nil 设置UIBackgroundModes bluetooth central和bluetooth peripheral info.plist 我想要一个后台服务,应该在后台扫描不可恢复的设备不断。 谢谢你的帮助 背景模式对扫描的效果不同 每个外围设备仅在第一次观察到时报告(在后台模式下,如果不连接,则无法通过RSSI跟踪接近度) 您可以向不在范围内的外围设备发起连接请求,当外围设备可用时,连接将完成。

我注意到ScanFor外围设备服务在后台不起作用。我尝试了以下方法:

  • 指定的UUID和选项nil
  • 设置UIBackgroundModes bluetooth central和bluetooth peripheral info.plist
  • 我想要一个后台服务,应该在后台扫描不可恢复的设备不断。
    谢谢你的帮助

    背景模式对扫描的效果不同

    每个外围设备仅在第一次观察到时报告(在后台模式下,如果不连接,则无法通过RSSI跟踪接近度)

    您可以向不在范围内的外围设备发起连接请求,当外围设备可用时,连接将完成。不必主动扫描(初始发现除外,这样您就知道要连接哪个UUID)


    也许,您可以通过在后台发送连接请求而不是扫描来解决问题。这样,iOS就知道你对某个特定的外设非常感兴趣,我可以想象这会影响发现时间。

    我希望当我连接的外设的RSSI值发生变化时(后台),我的应用程序会得到通知。我该怎么办?只需调用
    [peripheral readRSSI]()感谢您的快速回复。我已经试过这一次了;[rssiTimer失效];rssiTimer=[NSTimer timerWithTimeInterval:1.0目标:外围选择器:@selector(readRSSI)userInfo:nil repeats:YES];[[nsrunlop currentlunloop]addTimer:rssiTimer forMode:NSRunLoopCommonModes];当应用程序位于前台时,它工作正常,但当应用程序进入后台时,它停止读取rssi值。