在Windows 8上获取Geolocator的访问权限被拒绝

时间:2014-03-19 17:29:37

标签: c# windows-8 geolocation windows-runtime windows-store-apps

以下代码为我提供了拒绝访问权限的异常:

Geolocator geolocator = new Geolocator();
Geoposition geopos = await geolocator.GetGeopositionAsync();

错误如下:

A first chance exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll

Additional information: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

我已经给出了位置功能和声明。

有人可以建议我为什么会收到此错误吗?

1 个答案:

答案 0 :(得分:1)

您的应用在启动时是否提示您同意?如果是这样,并且您单击了阻止,那么您将获得此异常。

如果您没有看到提示,则会缓存权限 - 转到设置>您的应用更改权限。或卸载应用程序并重新运行,这将重置同意(以及更改清单并再次运行)。

也可能在系统范围内关闭位置。检查PC设置>隐私>位置(在Windows 8.1上;我忘记它在Windows 8中的位置,但应该在某处)。

但最重要的是,因为用户可以在第一次访问时拒绝同意,然后通过设置>将其关闭。权限,您应该始终使用像这样的代理API捕获此类异常。 (这就是模式:在这种情况下,这些API会抛出而不是返回null。)