C# UWP 地理定位,访问被拒绝
C# UWP Geolocation, 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;
但我收到错误消息:
'System.UnauthorizedAccessException' 类型的异常发生在 mscorlib.ni.dll 但未在用户代码中处理
WinRT 信息:您的应用没有访问位置数据的权限。确保您已在应用程序清单中定义 ID_CAP_LOCATION,并且在您的 phone 上,您已通过选中“设置”>“位置”打开位置。
附加信息:访问被拒绝。
在 Package.appxmanifest 我检查了这些项目:
互联网(客户端和服务器) - 选中,
互联网(客户端) - 检查,
位置 - 选中。
如何在本地机器上设置权限?
我解决了这个问题。在 Windows 10 中,在位置隐私设置中,我的位置服务未打开。所以我打开它,现在它正在工作。
您需要检查是否允许您访问定位服务?
您可以在 UWP 中使用 RequestAccessAsync() method of GeoLocater Class 处理此问题。
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
{
}
大家。
我正在尝试获取当前用户在 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;
但我收到错误消息:
'System.UnauthorizedAccessException' 类型的异常发生在 mscorlib.ni.dll 但未在用户代码中处理 WinRT 信息:您的应用没有访问位置数据的权限。确保您已在应用程序清单中定义 ID_CAP_LOCATION,并且在您的 phone 上,您已通过选中“设置”>“位置”打开位置。 附加信息:访问被拒绝。
在 Package.appxmanifest 我检查了这些项目: 互联网(客户端和服务器) - 选中, 互联网(客户端) - 检查, 位置 - 选中。
如何在本地机器上设置权限?
我解决了这个问题。在 Windows 10 中,在位置隐私设置中,我的位置服务未打开。所以我打开它,现在它正在工作。
您需要检查是否允许您访问定位服务? 您可以在 UWP 中使用 RequestAccessAsync() method of GeoLocater Class 处理此问题。
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
{
}