【问题标题】:wp8 background gps tracker stop workingwp8后台gps追踪器停止工作
【发布时间】:2014-05-29 16:37:08
【问题描述】:

我想为 Windows Phone 8 实现一个应用程序,以便每分钟获取设备位置数据并将其发送到服务器。

为此,我遵循了这个例子:

http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662935(v=vs.105).aspx

而不是使用:

App.Geolocator.MovementThreshold = 100;

我用:

App.Geolocator.ReportInterval = 1 *60 * 1000;

该应用在前台运行良好。

如果我按下 START 按钮,应用程序也能正常运行,但有以下限制:

  1. 如果我打开另一个应用程序,背景 gps 跟踪器将停止工作。
  2. 大约一小时或更长时间后,后台 gps 跟踪器也停止工作。

我了解到,由于某些因素,在后台运行的应用程序可能会被系统停用:

http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681691(v=vs.105).aspx

是否有任何方法或策略可以确保我的 gps 跟踪器在上述两种情况下继续在后台工作?目前是否有任何 wp8 应用程序在这种情况下工作?在 wp8 中是否可以这样做?

【问题讨论】:

    标签: windows-phone-8 background gps


    【解决方案1】:

    您必须在WMAppManifest.xml 中添加此 sn-p 以保持 GPS 在后台运行:

       <Tasks>
           <DefaultTask Name="_default" NavigationPage="GUI/Register.xaml">
              <BackgroundExecution>
                 <ExecutionType Name="LocationTracking" />
              </BackgroundExecution>
           </DefaultTask>
       </Tasks>     
    

    添加这个可以在App()的最后一行1小时后在后台运行应用程序:

    PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
    

    希望这会有所帮助。

    【讨论】:

    • 我已经在我的代码中使用了这个 sn-p,你可以在我引用的第一个链接中看到:msdn.microsoft.com/en-us/library/windowsphone/develop/… - 我的应用程序在后台运行,但有我上面写的限制。
    • 哦...请检查一下,我已经编辑了我的答案,以便您的应用能够在后台运行。
    • ApplicationIdleDetectionMode 解决了您的问题吗?
    • 我已经实施了您的解决方案,但我也纠正了其他错误。我已经更正了后台 gps 服务中的一些意外错误(例如,没有互联网连接时的验证),也许这个错误导致服务停止工作。现在 gps 后台服务在四个小时内运行良好。
    • 好的...意味着现在您可以在后台使用应用了...太棒了!!
    猜你喜欢
    • 2021-07-31
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多