Невозможно запросить калибровку компаса из обратного вызова основного местоположения - PullRequest
0 голосов
/ 21 февраля 2019

Я использую Базовое местоположение в своем приложении и пытаюсь представить предупреждение о калибровке, когда значения компаса / заголовка устройства слишком неточные.

Я правильно читаю значения заголовков из функции делегата didUpdateHeading.

Я прочитал соответствующие посты и документацию CLLocationManager (https://developer.apple.com/documentation/corelocation/cllocationmanagerdelegate/1621457-locationmanagershoulddisplayhead).

). В функции делегата locationManagerShouldDisplayHeadingCalibration (_ :) я попробовал эти две реализации:

func locationManagerShouldDisplayHeadingCalibration(_ manager: CLLocationManager) -> Bool {
    return true
}

И:

func locationManagerShouldDisplayHeadingCalibration(_ manager: CLLocationManager) -> Bool {
    print("locationManagerShouldDisplayHeadingCalibration")
    if let h = manager.heading {
        return h.headingAccuracy < 0 || h.headingAccuracy > 10
    }
    return true
}

В документации указано: «Если вы возвращаете false из этого метода или не предоставляете реализацию для него в своем делегате, Базовое расположение не отображает предупреждение о калибровке заголовка. Даже еслипредупреждение не отображается ", но я не знаю, как" обеспечить реализацию для него ".

Более того, я вижу, что нет способа представить предупреждение о калибровке системы вручную, если предупреждениеэто не так часто, как я хочу, это хорошее решение для опроса значения headingAccuracy наобратный вызов didUpdateHeading и представление системного предупреждения?Кроме того, так как я никогда не видел, есть ли способ, которым я могу вызвать предупреждение о калибровке системы?

...