アプリのバックグラウンドで出入りする iBeacon 領域を監視するために CoreLocation 領域を使用しているプロジェクトがあります。CLBeaconRegion (CLRegion)、CLBeacon など。CLLocationManager は、CLBeacon (iBeacon) 領域に入るとコールバックを返します。これは、下にある bluetoothManager の軽いラッパーです。
// various CLLocation delegate callback examples
- (void) locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region;
- (void) locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region;
私たちが抱えている問題は、ユーザーが Bluetooth をオンにしていない場合、Iphone が定期的にシステム レベルの警告を発行し、「Bluetooth をオンにして "APP_NAME" がアクセサリに接続できるようにする」ことです。これは頻繁に発生します。アプリがバックグラウンドで実行されているため、今朝すでに 4 回発生しています。CLLocationManager はこれらの CLBeaconRegion を監視しようとしている可能性がありますが、Bluetooth がオフになっているため、これを実行できません。
別の投稿では、CBCentralManager には、この警告を無効にできるプロパティ CBCentralManagerOptionShowPowerAlertKey があると述べています。
iOS CoreBluetooth は、ユーザーに Bluetooth をオンにするように求めることなく、Bluetooth が有効になっているかどうかを受動的にチェックします。
残念ながら、基になる bluetooth にアクセスする方法や、これを使用するための CBCentralManager 参照は見つかりませんでした。
CLBeaconRegion 監視のこの警告を無効にする方法はありますか?