在 Windows 10 通用应用程序中获取位置

Getting Location in Windows 10 Universal App

在新的 Windows 10 文档中,它说在获取用户位置之前,您应该使用 Geolocator.RequestAccessAsync()。但是,该方法似乎不可用。我可以使用的唯一选项是 "Geolocator.Equals" 和 "Geolocator.ReferenceEqual".

当我尝试在不使用 RequestAccessAsync 的情况下获取位置时。我收到一个错误提示 "pipe is being closed"。我已经包含了我试图用来获取以下位置的代码。

Geolocator geolocator1 = new Geolocator { DesiredAccuracyInMeters = 250 };
Geoposition pos = await geolocator1.GetGeopositionAsync();

您确定您的项目类型正确吗? Windows 8.1 应用程序的地理定位器没有此方法,但它有您在代码片段中调用的其他方法和属性。

Windows.Devices.Geolocation.Geolocator.RequestAccessAsync() 应该可用于通用 Windows 应用程序,并在 Visual Studio 2015RC 的 Windows 通用项目中为我显示。

它是一个静态函数,因此您不需要对象的实例:

await Windows.Devices.Geolocation.Geolocator.RequestAccessAsync();

您可能还需要检查 Package.appxmanifest 部分是否设置了以下内容:

<DeviceCapability Name="location" />

你可以查看我自己的 Location Example 如果这也有帮助

原来问题是由于我试图在 Class 库中执行此操作引起的,该库的目标是 Windows 8.1 而不是 Windows 10。更改它,解决了问题。