大家。
我正在尝试在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中我检查了这些项目: 互联网(客户端和服务器) - 已检查, 互联网(客户端) - 已检查, 位置 - 已检查。
如何在本地机器中设置权限?
答案 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
{
}