c# – Windows Universal(UWP)地理位置API权限
Windows Universal(Windows 10应用程序)中的Geolocation新API提供了一种允许访问用户位置的新方法.
我在UI线程上运行一些非常简单的Geolocation代码,如下所示,但我每次都获得“拒绝”的位置权限,并且没有提示允许位置权限.有没有其他人遇到这个?如何获得在Windows 10应用程序中允许地理位置的位置权限的提示? 地理定位方法 private async Task<ForecastRequest> GetPositionAsync() { try { // Request permission to access location var accessStatus = await Geolocator.RequestAccessAsync(); if (accessStatus == GeolocationAccessStatus.Allowed) { // Get cancellation token _cts = new CancellationTokenSource(); CancellationToken token = _cts.Token; // If DesiredAccuracy or DesiredAccuracyInMeters are not set (or value is 0),DesiredAccuracy.Default is used. Geolocator geolocator = new Geolocator { DesiredAccuracyInMeters = _desireAccuracyInMetersValue }; // Carry out the operation _pos = await geolocator.GetGeopositionAsync().AsTask(token); return new ForecastRequest() { Lat = (float)_pos.Coordinate.Point.Position.Latitude,Lon = (float)_pos.Coordinate.Point.Position.Longitude,Unit = Common.Unit.us }; } else throw new Exception("Problem with location permissions or access"); } catch (TaskCanceledException tce) { throw new Exception("Task cancelled" + tce.Message); } finally { _cts = null; } } 它被称为: protected async override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); ForecastViewModel vm = await ForecastViewModel.BuildViewModelAsync(await GetPositionAsync()); DataContext = vm.Forecast; uxForecastList.Visibility = Visibility.Visible; } 解决方法
您必须设置“位置”功能.你可以在appmanifest中做到这一点.
在屏幕截图中,您可以找到设置功能的位置: 在此处查找更多信息: https://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.geolocation.geolocator.aspx(向下滚动以查找功能信息) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |