以下代码为我提供了拒绝访问权限的异常:
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))
我已经给出了位置功能和声明。
有人可以建议我为什么会收到此错误吗?
答案 0 :(得分:1)
您的应用在启动时是否提示您同意?如果是这样,并且您单击了阻止,那么您将获得此异常。
如果您没有看到提示,则会缓存权限 - 转到设置>您的应用更改权限。或卸载应用程序并重新运行,这将重置同意(以及更改清单并再次运行)。
也可能在系统范围内关闭位置。检查PC设置>隐私>位置(在Windows 8.1上;我忘记它在Windows 8中的位置,但应该在某处)。
但最重要的是,因为用户可以在第一次访问时拒绝同意,然后通过设置>将其关闭。权限,您应该始终使用像这样的代理API捕获此类异常。 (这就是模式:在这种情况下,这些API会抛出而不是返回null。)