C# Geolocator.RequestAccessAsync方法
我正在玩一个简单的通用应用程序。我试着访问手机的地理位置。根据MSDN,在访问设备位置之前,应该调用C# Geolocator.RequestAccessAsync方法,c#,windows-phone-8.1,win-universal-app,C#,Windows Phone 8.1,Win Universal App,我正在玩一个简单的通用应用程序。我试着访问手机的地理位置。根据MSDN,在访问设备位置之前,应该调用geologitor.RequestAccessAsync静态方法。问题是。。。没有这样的静态方法可用。。。只有Equals和ReferenceEquals静态方法是可用的。不存在事件返回值枚举GeolocationAccessStatus 我尝试在不调用此方法的情况下访问地理位置,它在emulator上工作。但在一部真正的手机上是另一回事 我正在使用的.NET Framework是4.5.3,尽
geologitor.RequestAccessAsync
静态方法。问题是。。。没有这样的静态方法可用。。。只有Equals
和ReferenceEquals
静态方法是可用的。不存在事件返回值枚举GeolocationAccessStatus
我尝试在不调用此方法的情况下访问地理位置,它在emulator上工作。但在一部真正的手机上是另一回事
我正在使用的.NET Framework是4.5.3,尽管我没有看到这个方法/类的任何特定要求。在“能力”下检查“位置”也没有任何作用。另外,我可以轻松创建geological
对象的新实例并使用其方法
我打赌这是一件非常简单/愚蠢的事情,我就是想不出来…看起来文档已经针对Windows 10进行了更新,但这样做会丢失Windows(Phone)8.1的信息。Windows Phone 8.1不需要使用
RequestAccessAsync
,因为在用户从应用商店安装应用程序时已授予许可。也愚弄了我,它只是通用应用程序的一部分-Windows 10
对于Win 8.1,如果您安装应用程序,然后关闭位置,然后运行应用程序,您可能需要此代码才能获得与RequestAccessAsync()相同的结果
所以在我的手机上使用
geological.GetGeopositionAsync()
方法无法完成的原因可能不同?调试应用程序从不请求位置检索权限是否正常(因为我不记得收到过它)?
Geolocator geolocator = new Geolocator();
try
{
geoposition = await geolocator.GetGeopositionAsync(
maximumAge: TimeSpan.FromMinutes(5),
timeout: TimeSpan.FromSeconds(5));
}
catch (Exception ex)
{
// Location not allowed by user phone setting
if (ex.HResult == -2147024891)
{
... LocationNotAuthorized
}
...
}