3

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

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

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

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

我的 Mac 示例应用程序在哪里

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

4

3 回答 3

3

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

这是它在我的机器上的样子: 位置设置

(很抱歉它是德语,但您应该能够在 Mac 上找到该设置)。刚刚使用从源代码编译的 MonoMac 1.0 tarball 在 Lion 上测试了 MonoMac 示例 WhereIsMyMac,这很有吸引力。

于 2012-09-16T06:51:17.183 回答
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

我还没有确定原因。

于 2012-09-16T12:16:08.740 回答
0

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

于 2013-05-02T16:19:47.327 回答