【问题标题】:CoreLocation not working with MonoMacCoreLocation 不适用于 MonoMac
【发布时间】:2012-09-07 17:23:51
【问题描述】:

好的,所以我正在尝试在单声道 Mac 应用程序中使用 CoreLocation。在几次尝试让它工作但没有运气(.UpdatedLocation 事件从未引发)之后,我从MonoMac repository 中获取了这个示例。

CLLocationManager 的配置/使用看起来非常简单:

locationManager = new CLLocationManager();
locationManager.UpdatedLocation += HandleLocationManagerUpdatedLocation;
locationManager.Failed += HandleLocationManagerFailed;
locationManager.StartUpdatingLocation();

不幸的是,那里的结果似乎与从未显示过的位置相同:

那么,我需要在 mac 上启用某种设置才能使其正常工作吗? CLLocationManager.LocationServicesEnabled 在运行时检查时返回 true。

【问题讨论】:

    标签: c# mono core-location monomac


    【解决方案1】:

    确保您已允许 WhereIsMyMacApp 允许访问定位服务。如果您错过了第一次运行程序时显示的弹出窗口,您必须在“系统设置 -> 安全 -> 隐私”中设置复选框。如果您错过为应用设置复选框但启用了位置服务,CLLocationManager.LocationServicesEnabled 将为真,但您的应用将无法使用该服务。

    这是它在我的机器上的外观:

    (对不起,它是德语,但您应该能够在您的 Mac 上找到该设置)。刚刚使用从源代码编译的 MonoMac 1.0 tarball 在 Lion 上测试了 MonoMac 示例 WhereIsMyMac,效果非常好。

    【讨论】:

    • 啊,我确实在这个列表中找到了这个应用程序......它从来没有提示过我(或者我没有注意到)并且在这里没有被选中。不幸的是,一旦我检查并重新运行该应用程序,它仍然没有。我清理并重建了应用程序,在发布模式下尝试,重命名,重新启动计算机。一切都无济于事,该应用程序仍然没有更新位置:(
    【解决方案2】:

    在 Mountain Lion 上,我看到了 Joel 看到的同样问题。更新永远不会发生。我创建了一个示例 obj-c 应用程序,它确实有效。在控制台日志中,我看到 MonoMac 应用出现以下错误:

    9/16/12 8:06:34.291 AM com.apple.launchd.peruser.501[154]: (com.apple.CoreLocationAgent) Throttling respawn: Will start in 1 seconds
    9/16/12 8:06:35.332 AM CoreLocationAgent[7744]: CodeSigningInforequest for pid=7739 
    9/16/12 8:06:35.333 AM CoreLocationAgent[7744]: getting requirement data failed for pid=7739
    

    但对于 obj-c 应用,它看起来像:

    9/16/12 8:02:18.143 AM CoreLocationAgent[7674]: locationRequest for pid=7670 message=0
    9/16/12 8:02:20.196 AM CoreLocationAgent[7674]: locationRequest for pid=7670 response=1
    

    我还没有确定原因。

    【讨论】:

    • 我很感谢您在调查中付出的努力。我想知道我是否可以说服您检查@Dyna 在他的回答中提到的设置,看看它是否适合您。
    • 我确实看过 Dyna 提到的设置。我再次得到与乔尔相同的结果。我相信这是一个山狮问题......有些东西改变了。在 objc-c 示例中,我整理了一个弹出窗口,要求我授予应用程序权限,在 C# 版本中没有弹出窗口,只有日志中的错误。 @Joel 你在山狮吗?
    • 最好的改变是向 MonoMac 提交错误/问题。由于这是一个失败的官方示例,因此开发人员可能会快速修复。
    【解决方案3】:

    我遇到了同样的问题。但是,对于 OS X 10.8.3 和从源代码构建的最新 MonoMac(从 7e55bb19cf27afe44b53eacb33643397921aafb9 开始),现在又可以正常工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-08
      • 2012-09-25
      • 2013-07-20
      相关资源
      最近更新 更多