readRSSI関数を使用してRSSIを読み取るようにタイマーをスケジュールしましたが、アプリがバックグラウンドになるとタイマーが停止します。アプリがバックグラウンドになったときに周辺機器の通知からRSSI値を取得するための良い方法があるかもしれません。しかし、私はその方法がわかりません。誰か助けてもらえますか?誰かがより良い方法を持っていますか?
2905 次
1 に答える
1
私は同じ問題を抱えています、そして私は2つの考えを持っています。
1.1。
まず、定期的にcorebluetoothデリゲートを取得するサービスが必要です。Fまたは私の例では、定期的に委任できるバッテリーサービスがありますdidUpdateValueForCharacteristic
。
次に、readRSSI関数をに設定しdidUpdateValueForCharacteristic
ます。また、Corebluetoothでバックグラウンドモードを設定することを忘れないでください。これで、バッテリー値を更新するときにRSSIを更新できます。
これは私にとっては問題なく機能しますが、いくつかのサンプルコードから別のアイデアを得ました。
2.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 に答える