2017-07-25 17 views
0

iOSアプリ(BLE Centralとしてコード化されている)を強制的にフォアグラウンドで実行しているかのようにバックグラウンドでBLEスキャンを実行する方法はありますか?近接性を判断するためにRSSIを使用しています。アプリはバックグラウンドで実行し、RSSIレベルを処理する必要があります。注記:わかっているかもしれませんが、RSSIは非常に騒々しいので、正確な近接を得るために、できるだけ多くのサンプルを使用してフィルタリングする必要があります。私たちは接続してすぐにBLE周辺機器との間でアプリを切断しようとしましたが、この方法を使用するとiOSアプリに接続している間周辺機器が広告を表示できなくなります。実際には、近くの他のiOSデバイスが必要とするBLEペリフェラルによる広告の量が制限されるので、理想的にはこの方法を使用しないことをお勧めします。この疑問を踏まえたい人は、BLEペリフェラルによって広告ペイロードの一部または全部を変更することができます。BLE iOSのバックグラウンド広告

答えて

0

iOSアプリケーションでAppleのルールに違反する行為を強制することはできません。 BLEデバイスのスキャンを続行するには、アプリをフォアグラウンド状態にする必要があります。

また、BLEデバイスをバックグラウンドで監視することもできます。 BLEデバイスがデバイスに近づくと、バックグラウンドでデバイスをスキャンする時間が限られます。

let beaconRegion = CLBeaconRegion(proximityUUID: "some uuid", major: 1, minor: 1, identifier: "some identifier") 
locationManager.startMonitoring(for: beaconRegion) 

ただし、これは使用例に合っているかどうかわかりません。

0

サービスUUIDを使用してバックグラウンドでBLEスキャンを続行できます。特定のサービスUUIDをスキャンする必要があります。以下の方法を使用してバックグラウンドでスキャンします。

オープンFUNCのscanForPeripherals(withServicesのserviceUUIDs:[CBUUID] ?,オプション:[文字列:任意] = nilの?)

あなたの.plistファイルにバックグラウンドモードを設定する必要がもう一つ。 [必須の背景モード]を[CoreBluetoothを使用してアプリケーション通信]に設定します。

関連する問題