C#UWP地理位置,拒绝访问

时间:2017-01-05 08:23:13

标签: c# location uwp coordinates access-denied

大家。

我正在尝试在C#UWP应用程序中获取当前用户的位置。

var geoLocator = new Geolocator();
geoLocator.DesiredAccuracy = PositionAccuracy.High;
var accessStatus = await Geolocator.RequestAccessAsync();
var pos = await geoLocator.GetGeopositionAsync();
var latitude = pos.Coordinate.Point.Position.Latitude;
var longitude = pos.Coordinate.Point.Position.Longitude;

但我收到错误:

mscorlib.ni.dll中出现“System.UnauthorizedAccessException”类型的异常,但未在用户代码中处理 WinRT信息:您的应用程序无权访问位置数据。确保您已在应用程序清单中定义了ID_CAP_LOCATION,并且在手机上已通过选中设置>打开了位置。地点。 其他信息:访问被拒绝。

在Package.appxmanifest中我检查了这些项目: 互联网(客户端和服务器) - 已检查, 互联网(客户端) - 已检查, 位置 - 已检查。

如何在本地机器中设置权限?

2 个答案:

答案 0 :(得分:4)

我解决了这个问题。在Windows 10中,在位置隐私设置中,我的位置服务未启用。所以我打开它,现在它正在工作。

答案 1 :(得分:0)

您需要检查是否允许您访问位置服务? 您可以使用UWP中RequestAccessAsync()类的GeoLocater方法处理此问题。

        Geolocator geoLocator = new Geolocator();
        GeolocationAccessStatus accessStatus = await Geolocator.RequestAccessAsync();

        if ( accessStatus == GeolocationAccessStatus.Allowed)
        {
            // Put all your Code here to access location services
            Geoposition geoposition = await geoLocator.GetGeopositionAsync();
            var position = geoposition.Coordinate.Point.Position;
            var latlong = string.Format("lat:{0}, long:{1}", position.Latitude, position.Longitude);
        }
        else if (accessStatus == GeolocationAccessStatus.Denied)
        {
               // No Accesss
        }
        else
        {
        }
相关问题