Я использую Базовое местоположение в своем приложении и пытаюсь представить предупреждение о калибровке, когда значения компаса / заголовка устройства слишком неточные.
Я правильно читаю значения заголовков из функции делегата 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 и представление системного предупреждения?Кроме того, так как я никогда не видел, есть ли способ, которым я могу вызвать предупреждение о калибровке системы?