バックグラウンド モードでデバイスをスキャンする必要がある BLE アプリに取り組んでいます。デバッグ中に、デバイスをスキャンすることがわかりましたが、デバイスの検出が呼び出されず、返されませんでした。フォアグラウンド モードではすべて正常に動作します。
アプリがバックグラウンドで実行されているときにデバイスをスキャンできないのはなぜですか?
注:必要なバックグラウンド モードを入力しました 1.アプリは CoreBluetooth を使用して通信します 2.アプリは CoreBluetooth を使用してデータを共有します。以下は、フォアグラウンドでスキャンデバイスに対して呼び出したコードです
[[LGCentralManager sharedInstance] scanForPeripheralsByInterval:1 completion:^(NSArray *peripherals) {
// If we found any peripherals sending to test
if (peripherals.count > 0) {
for (LGPeripheral *peripheral in peripherals) {
if (peripheral.advertisingData) {
}
}
}];
出力広告データ:
Printing description of peripheral->_advertisingData:
{
kCBAdvDataIsConnectable = 1;
kCBAdvDataLocalName = "Device Name";
kCBAdvDataServiceUUIDs = (
"00000000-64B0-5B82-3F51-000000027D2"
);
kCBAdvDataTxPowerLevel = "-2";
}