Corebluetoothフレームワークを使用してアプリを開発しています。
BLEデバイスに接続してRSSI値を取得します。
RSSIを定期的に読み取る機能を設定しました。タイマーコードは以下のとおりです。
NSTimer *timer;
timer = [NSTimer scheduledTimerWithTimeInterval:1.2f target:self selector:@selector(detectRSSI) userInfo:nil repeats:YES];
そしてdetectRSSIコードは以下のとおりです
- (void)detectRSSI
{
[self.peripheral readRSSI];
}
だから問題は、
関数は正常に動作しますが、時間間隔を1.2秒未満に設定すると、
ペリフェラルDidUpdateRSSIは、次のようなエラーメッセージをランダムに報告します。
The operation was cancelled.
そして、レートが1.2秒以上であれば、それは起こりません。
RSSI値をより頻繁に(0.5秒以下)読み取るアイデアはありますか?