【发布时间】:2014-01-29 06:56:12
【问题描述】:
我尝试制作一个持续获取位置 windows phone 8 的应用程序。
以下代码用于获取位置。
geolocator = new Geolocator();
geolocator.DesiredAccuracyInMeters = 30;
geolocator.ReportInterval = 15000;
geolocator.StatusChanged += geolocator_StatusChanged;
geolocator.PositionChanged += geolocator_PositionChanged;
当 gps 恢复正常时,一切正常。
但是一旦 gps 位置不可用,Geolocator 就会停止位置获取。(即当设备返回 gps 区域时 geolocator_PositionChanged 不会被调用)
我尝试按照this blog ( geoposition advanced tracking scenarios for windows phone 8 ) 在geolocator_StatusChanged() 中创建一个新的地理定位器对象
case PositionStatus.NoData:
geolocator = new Geolocator();
geolocator.DesiredAccuracyInMeters = 30;
geolocator.ReportInterval = 15000;
geolocator.StatusChanged += geolocator_StatusChanged;
geolocator.PositionChanged += geolocator_PositionChanged;
status = "no data";
break;
但它也没有奏效。请指导我如何确保 GPS 数据的持续可用性?
另一点注意到,一旦 gps 源更改为蜂窝,它就再也不会使用 Satalite 作为 gps 源(蜂窝源返回最不准确的 gps 值)。那么如何在 windows phone 8 中指定 gps 源呢?
在设备上完成测试:诺基亚 lumia 520
【问题讨论】:
-
将 DesiredAccuracy 属性设置为 High 以使用 gps 源
标签: c# windows-phone-8 gps