3

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

4

1 回答 1

1

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

1.

首先,您应该有一些定期获得核心蓝牙委托的服务。或者我的例子,我有一个电池服务,我可以定期获得委托didUpdateValueForCharacteristic

二、设置readRSSI函数didUpdateValueForCharacteristic。并且不要忘记使用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];

它对我也很好。

于 2013-03-28T03:59:43.507 回答