swift didReadRSSI事件在声明后台模式的情况下进入后台时停止工作

vc9ivgsu  于 2023-04-19  发布在  Swift
关注(0)|答案(1)|浏览(101)

我正在尝试开发一个应用程序,可以发现和连接到设备,而在后台,当连接的外设进入一定的rssi范围,我想发送一条消息到外设。

func peripheral(_ peripheral: CBPeripheral, didReadRSSI RSSI: NSNumber, error: Error?) {
        // Get the current RSSI value
        let rssi = Int(truncating: RSSI)
            
        print("Current RSSI value: \(String(describing: rssi))")

        let positiveRssi = rssi * -1
        if (positiveRssi <= 50)
        {
            //here i send the message
        }
            
        // Call the readRSSI() method again to get updated RSSI values
        peripheral.readRSSI()
    }

当我在前台时,它工作得很完美,但当我进入后台时,它又给了我几个答案,然后突然停止。
我可以通过控制台看到它什么时候工作,什么时候停止工作。我还启用了“使用蓝牙LE配件”后台模式。

vxqlmq5t

vxqlmq5t1#

正如@Paulw11已经提到的,移动的操作系统可以根据应用程序的状态限制专用硬件和资源的使用。
因此,使用标准化的蓝牙LE配置文件和服务可能更容易,例如:

相关问题