gpt4 book ai didi

ios - 未调用 locationManagerShouldDisplayHeadingCalibration

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:06 24 4
gpt4 key购买 nike

我有一个使用标题的简单 iOS 应用程序。但是由于精度非常差(10 到 25 度),我实现了 locationManagerShouldDisplayHeadingCalibration 函数。但是它永远不会被调用。这是我的代码:

    ...
locmanager = [CLLocationManager new];

[locmanager setDelegate:self];
[locmanager setDesiredAccuracy:kCLLocationAccuracyBest];
[locmanager setHeadingFilter:kCLHeadingFilterNone];
[locmanager setHeadingOrientation:CLDeviceOrientationLandscapeLeft|CLDeviceOrientationLandscapeRight];
if ([CLLocationManager locationServicesEnabled])
{

[locmanager startUpdatingLocation];
[locmanager startUpdatingHeading];
}
...

- (void)locationManager:(CLLocationManager*)manager didUpdateHeading:(CLHeading*)newHeading
{
// This one gets called
}

- (BOOL)locationManagerShouldDisplayHeadingCalibration:(CLLocationManager *)manager
{
// This one does NOT get called
NSLog ("Here");
return YES;
}

我应该怎么做才能获得 compass 校准?谢谢。

最佳答案

苹果官方文档:

Core Location may call this method in an effort to calibrate the onboard hardware used to determine heading values. Typically, Core Location calls this method at the following times:

The first time heading updates are ever requested

When Core Location observes a significant change in magnitude or inclination of the observed magnetic field

因此完全有可能您的校准已经很好并且不需要设置。请注意,此方法永远不会在模拟器中调用。

尝试将 MKMapView 与 MKUserTrackingMode.FollowWithHeading 一起使用,看看是否出现校准窗口。您的委托(delegate)可能仍未被调用,因为 MKMapView 通过它自己的私有(private)位置管理器委托(delegate)调用它。

您也可以尝试在设备上的“设置”->“位置服务”->“系统服务”中关闭 compass 校准。

关于ios - 未调用 locationManagerShouldDisplayHeadingCalibration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27869700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com