我安排一个计时器使用readRSSI函数读取RSSI,但是当我的应用程序进入后台计时器停止。 也许有一个很好的方法,从外围的通知获得RSSI值,当应用进入后台。 但我不知道该怎么办。 任何人可以帮助我吗? 任何人有一个更好的方法?
Answer 1:
我已经得到了同样的问题,我有两个想法。
1。
首先,你应该有一些服务,得到了corebluetooth委托periodly。 F或我的例子,我有一个电池的服务,我可以得到委托与didUpdateValueForCharacteristic
periodly。
其次,在设置readRSSI功能didUpdateValueForCharacteristic
。 而且不要忘记设置背景模式与Corebluetooth.So现在你可以得到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];
它正常工作,对我来说太。
文章来源: i schedule a Timer to read RSSI using readRSSI function ,but the timer stops when my app go into background