在Windows 10 Universal App中获取位置

时间:2015-05-27 02:26:29

标签: c# win-universal-app windows-10

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

当我尝试在不使用RequestAccessAsync的情况下获取位置时。我收到一条错误,说“管道正在关闭”。我已经包含了我想用来获取下面位置的代码。

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

3 个答案:

答案 0 :(得分:3)

您确定自己拥有合适的项目类型吗? Geolocator for Windows 8.1应用程序没有此方法,但它确实具有您在代码段中调用的其他方法和属性。

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

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

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

答案 1 :(得分:1)

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

<DeviceCapability Name="location" />

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

答案 2 :(得分:1)

原来这个问题是由我尝试在针对Windows 8.1而不是Windows 10的类库中执行此操作。更改它,解决了问题。