是否有可能改变PositionChanged事件处理程序中的Geolocator的DesiredAccuracy&ReportInterval?【JAVA教程】

!
也想出现在这里? 联系我们
信息

是否有可能改变PositionChanged事件处理程序中的Geolocator的DesiredAccuracy&ReportInterval?,第1张

概述是否有可能改变PositionChanged事件处理程序中的Geolocator的DesiredAccuracy&ReportInterval?

我想更改positionChanged事件处理程序中的DesiredAccuracy和ReportInterval,以便在不同的位置dynamic更改位置更新频率。

我做了这样的事情

voID geolocator_positionChanged(Geolocator sender,positionChangedEventArgs args) { geolocator.StatusChanged -= geolocator_StatusChanged; geolocator.positionChanged -= geolocator_positionChanged; geolocator.DesiredAccuracy = positionAccuracy.High; geolocator.ReportInterval = 5 * 1000; geolocator.StatusChanged += geolocator_StatusChanged; geolocator.positionChanged += geolocator_positionChanged; }

但问题是我得到了

$exception{System.Exception: *** 作中止(从HRESulTexception:0x80004004(E_ABORT))

使用MCC,MNC,LAC和Cell ID查找位置

电话为linux PC的蓝牙GPS

从英制坐标转换到标准的wgs84 nmea

从windows提供地理位置数据到iOS

从USB-GPS接收器读取数据

windows.Devices.Geolocation.Geolocator.put_DesiredAccuracy(positionAccuracy value)

我不明白这个例外,因为它没有说明原因。

我如何做到这一点(dynamic更改准确性和报告间隔)?

谢谢。

在我的c + +程序中使用OpenStreetMap

在windows Mobile的C#程序中使用来自Google地图的数据

在TiZen获取位置值的软件包

Cli从osm文件生成地图图块(打开街道地图)?

获取基于GPS的位置function。 WinMobile 6.5平台

根据这篇微软文章 ,你的例外表明你已经禁用了你的手机设置的位置服务:

catch (Exception ex) { if ((uint)ex.HResult == 0x80004004) { // the application does not have the right capability or the location master switch is off StatusTextBlock.Text = \”location is Disabled in phone settings.\”; } //else { // something else happened acquring the location } }

在改变这些属性之前,最好使用GeoCoordinateWatcher并调用Stop()/ Start()。 在GeoCoordinateWatcher上使用Geolocator 有一些优点 ,但对于大多数应用程序来说并不重要。 由于GeoCoordinateWatcher在WP8上仍然完全支持,所以如果可行的话,切换到它可能会更容易。

正如你已经在你的代码中所做的那样,删除StatusChanged和positionChanged所有处理程序都需要能够修改ReportInterval等,否则将引发此异常(0x80004004)。

在我的情况下,删除所有处理程序不是一个选项,因为我在我的WP8应用程序中使用Geolocator 来保持我的应用程序在后台活着 。 删除最后一个处理程序也会暂停我的应用程序,因为从WP的角度来看,没有理由让应用程序保持在后台。

我发现可以通过创建一个临时的Geolocator来解决这个问题:

// Wire up a temporary Geolocator to prevent the app from closing var tempGeolocator = new Geolocator { MovementThreshold = 1,ReportInterval = 1 }; TypedEventHandler<Geolocator,positionChangedEventArgs> dummyHandler = (sender,positionChangesEventArgs2) => { }; tempGeolocator.positionChanged += dummyHandler; Geolocator.positionChanged -= OnGeolocatorOnpositionChanged; Geolocator.ReportInterval = reportInterval; Geolocator.positionChanged += OnGeolocatorOnpositionChanged; tempGeolocator.positionChanged -= dummyHandler;

这样的应用程序不会被WP杀死。 请记住,重新positionChanged也会导致立即回调。

总结

以上是内存溢出为你收集整理的是否有可能改变PositionChanged事件处理程序中的Geolocator的DesiredAccuracy&ReportInterval?全部内容,希望文章能够帮你解决是否有可能改变PositionChanged事件处理程序中的Geolocator的DesiredAccuracy&ReportInterval?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞147 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容