Маяки не обнаруживаются, когда приложение находится на переднем плане - PullRequest
1 голос
/ 14 октября 2019

У меня есть приложение для iOS, которое обнаруживает маяки BLE. Методы CLLocationManagerDelegate были реализованы в AppDelegate. Теперь, когда приложение находится на переднем плане, didRangeBeacons дает пустой массив маяков в журналах.

Я уже пытался явно запустить ранжирование в контроллерах вида, но все равно не работает.

class AppDelegate: UIResponder, UIApplicationDelegate {
   ...
   lazy var locationManager: CLLocationManager = {
        let locationManger = CLLocationManager()
        locationManger.delegate = self
        return locationManger
    }()

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        ...
        if CLLocationManager.authorizationStatus() == .authorizedAlways {
            locationManager.startMonitoring(for: beaconRegion)
            locationManager.startMonitoring(for: beaconRegion2)
        }
    }
    ...
}

extension AppDelegate: CLLocationManagerDelegate {
    func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
        if beacons.count > 0 {
            print("From Region \(region.identifier)")
        } else {
            print("empty")
        }
}

Всегда печатает пустой, когда на переднем плане.

Это должно дать мнеближайшие маяки в регионе.

Странная вещь, когда приложение переводится в фоновый режим, оно сразу обнаруживает и показывает все маяки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...