C# CoreLocation不使用MonoMac

C# CoreLocation不使用MonoMac,c#,mono,core-location,monomac,C#,Mono,Core Location,Monomac,好的,我试着在mono mac应用程序中使用CoreLocation。在尝试了几次让它正常工作后(从未引发.UpdatedLocation事件),我从 CLLocationManager的配置/使用似乎非常简单: locationManager = new CLLocationManager(); locationManager.UpdatedLocation += HandleLocationManagerUpdatedLocation; locationManager.Failed += H

好的,我试着在mono mac应用程序中使用CoreLocation。在尝试了几次让它正常工作后(从未引发
.UpdatedLocation
事件),我从

CLLocationManager的配置/使用似乎非常简单:

locationManager = new CLLocationManager();
locationManager.UpdatedLocation += HandleLocationManagerUpdatedLocation;
locationManager.Failed += HandleLocationManagerFailed;
locationManager.StartUpdatingLocation();
不幸的是,结果似乎是一样的,因为位置从未显示:


那么,mac电脑上是否有某种设置需要启用才能正常工作<代码>CLLocationManager.LocationServicesEnabled在运行时检查时返回true。

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

下面是它在我的机器上的外观:


(很抱歉,它是德语,但您应该能够在Mac上找到设置)。刚刚测试了MonoMac样本,其中IsmyMac on Lion和MonoMac 1.0 tarball是从源代码编译而来的,可以作为一个符咒使用。

在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

我还没有确定原因。

我也有同样的问题。然而,随着OS X 10.8.3和最新的MonoMac从源代码构建而成(从7E55BB19CF27AFE44B53EACB3343397921AAFB9开始),这项功能现在又开始工作了。

Ahh,我确实在这个列表中找到了应用程序。。。它从来没有提示过我(或者我没有注意到),并且在这里被取消选中。不幸的是,一旦我检查并重新运行应用程序,它仍然没有。我清理并重新构建了这个应用程序,在发布模式下尝试了它,重命名了它,重新启动了计算机。所有这些都无效,应用程序仍不更新位置:(我很感谢你的努力。我想知道我是否能说服你检查@Dyna在他的回答中提到的设置,看看这是否对你有效。我确实看过Dyna提到的设置。我再次得到了与Joel相同的结果。我相信这是一个山狮问题……有所改变。在objc-c示例中,我设置了一个弹出窗口。)curs要求我在C#version no弹出窗口中授予应用程序权限,只是日志中的错误。@Joel你在Mountain Lion上吗?最好的改变是向MonoMac提交一个错误/问题。因为这是一个失败的官方示例,开发人员可能会快速修复。