我安排一个Timer使用readRSSI函数读取RSSI,但是当我的应用程序进入后台时计时器停止

我安排一个Timer使用readRSSI函数读取RSSI,但是当我的应用程序进入后台时,计时器停止。 也许有一种很好的方法可以在应用程序进入后台时从外围设备的通知中获取RSSI值。 但我不知道该怎么做。 有人能帮助我吗? 谁有更好的方法?

我有同样的问题,我有两个想法。

1。

首先,你应该有一些定期获得corebluetooth委托的服务。 F或我的例子,我有一个电池服务,我可以定期与didUpdateValueForCharacteristic委托。

其次,在didUpdateValueForCharacteristic设置readRSSI函数。 并且不要忘记使用Corebluetooth设置后台模式。现在您可以在更新电池值时获得RSSI更新。

这对我来说很好,但我从一些示例代码中得到了另一个想法。

2。

每当您想要启动RSSI阅读器时,请使用以下代码:

 NSTimer *rssiTimer; [rssiTimer invalidate]; rssiTimer = [NSTimer timerWithTimeInterval:1.0 target:peripheral selector:@selector(readRSSI) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop]addTimer:rssiTimer forMode:NSRunLoopCommonModes]; 

它对我也很好。