地理定位器挂在 WP8 上,在 8.1 上工作?

Posted

技术标签:

【中文标题】地理定位器挂在 WP8 上,在 8.1 上工作?【英文标题】:Geolocator hanging on WP8, working on 8.1? 【发布时间】:2014-06-21 21:57:12 【问题描述】:

Geolocator 似乎根本无法在 WP8 上正常工作。 (但由于某些奇怪的原因,在 8.1 上运行良好)...我处于最佳状态 - LTE、Fios Wifi...没有障碍物。没有理由为什么它不应该工作。但是,它似乎只是挂起并且永远不会返回当前位置甚至是异常。

我已尝试禁用反向地理编码,但它不起作用。我已将其范围缩小为获取位置的实际服务(Geolocator 或 GeoPosition)

ID_CAP_LOCATION 已启用。电话定位服务已启用。我的目标是 WP8。

代码:

private async void getlocation()
        
            try
            
                Geolocator gl = new Geolocator(); gl.DesiredAccuracyInMeters = 50;

                Geoposition geoposition = await gl.GetGeopositionAsync(maximumAge: TimeSpan.FromMinutes(5), timeout: TimeSpan.FromSeconds(60));
                latitude = geoposition.Coordinate.Latitude.ToString(); longitude = geoposition.Coordinate.Longitude.ToString();

                //Location to physical address
                List<MapLocation> locations;
                ReverseGeocodeQuery query = new ReverseGeocodeQuery();
                query.GeoCoordinate = new GeoCoordinate(geoposition.Coordinate.Latitude, geoposition.Coordinate.Longitude);

                //Set address to tecxtblock
                query.QueryCompleted += (s, e) =>
                
                    locations = e.Result as List<MapLocation>;
                    address = locations[0].Information.Address.City.ToString();
                    ts.Center = new GeoCoordinate(geoposition.Coordinate.Latitude, geoposition.Coordinate.Longitude);
                    ts.ZoomLevel = 7;
                    location.Text = address.ToUpper(); //Location

                    //Successful, now get weather for current location
                    getforecast();
                ;
                query.QueryAsync();
            
            catch
            
                MessageBox.Show("Location services appear to be turned off. To use Atmosphere, turn location services on.");
            
        

【问题讨论】:

【参考方案1】:

我在 WP8 上遇到了后台跟踪问题,它只会在应用被购买到前台时更新位置。非常令人困惑,因为我知道它可以在其他设备上正常工作。

最后我只是完全卸载应用程序并重新安装,这解决了问题。以防万一您还没有尝试过 - 只需完全删除应用程序并使用 Visual Studio 重新安装/重新部署。问题可能会自行解决。

【讨论】:

【参考方案2】:

我遇到了同样的问题。相同的代码在 8.1 中有效,但在 8.0 中无效

当我通过按钮单击而不是 Page 的构造函数或在 Page_loaded 事件中调用函数时,我能够使其工作。

【讨论】:

以上是关于地理定位器挂在 WP8 上,在 8.1 上工作?的主要内容,如果未能解决你的问题,请参考以下文章

地理定位在笔记本电脑上工作,但不在智能手机上

在 Windows Phone 8.1 上获取给定 CivicAddress 的坐标/地理点

地理定位移动测试,无需 https 即可进行网络地理定位

在不启用他们的位置的情况下在科尔多瓦上获取用户位置

离子应用程序的地理定位错误在浏览器上有效,但在安卓手机上无效

离子地理定位,iOS 上没有权限