我正在开发一个使用用户当前位置的 Windows 手机应用程序,我正在 7 操作系统中制作该应用程序。我的问题是,我可以在后台跟踪位置,即屏幕锁定时吗?我知道这在 wp8 中是一种可能性,因为它为我们提供了 GeoLocator 类,但我可以在 wp7 中实现这一点吗?我基本上是在制作一个 runtracker 应用程序,因此我希望我的应用程序即使在后台也能跟踪位置,这真的可行吗?永远感谢您的帮助!
3 回答
我在我的应用程序中遇到了同样的问题。我认为这对于 wp7 是不可行的。如果你想用 wp8 来做,你可以参考下面的链接。 http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681691%28v=vs.105%29.aspx
并了解背景支持和不支持的 API http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202942%28v=vs.105%29.aspx/css
GeoCoordinateWatcher 类存在于 WP7 中,但这里是 MSDN 的文档 -
此 API 用于获取设备的地理坐标,支持在后台代理中使用,但它使用缓存的位置值而不是实时数据。缓存的位置值由设备每 15 分钟更新一次。
更多信息:http: //msdn.microsoft.com/en-us/library/windowsphone/develop/hh202962%28v=vs.105%29.aspx/css
可以让应用程序在锁定屏幕下运行,例如 Endomondo 应用程序。
使用空闲检测,您可以在屏幕被锁定的情况下保持应用程序开启,并且您可以继续跟踪位置。实际上,它不是在后台运行,而是在前台运行。只是屏幕被锁定。因此,请注意不要耗尽用户的电池。
您必须将PhoneApplicationService.ApplicationIdleDetectionMode
属性设置为Disabled
,例如在App.xaml.csInitializePhoneApplication()
的方法中:
PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
请注意,此类应用程序有特殊的认证要求。请参阅下页第 6.3 节(在锁定屏幕下运行的应用程序):