2011-10-19 146 views
2

我有Android应用程序,其中服务运行24/7电话每5分钟获取一次GPS位置并发送到服务器。这是要求。是否可以为Windows Phone 7.5或iOS创建后台服务?

我可以为iPhone编写相同的服务吗?我不确定是否有可能。

我可以为WP7编写相同的服务吗?我认为之前无法运行服务。 7.5有什么变化吗?

编辑: 我不知道为什么有人downvoted。这是具体的是/没问题。

回答

6

在WP7中引入芒果背景任务是可能的。事实上,有一个内置的机制来轮询由API提供的更加省电的GPS。

不知道它是否下降到5分钟,认为它是更大的像30分钟。它也不能与Windows服务相媲美 - 所以不要随心所欲。背景任务受到严格限制,以保持手机对用户的响应 - 要利用它们,您需要满足要求。

后台任务介绍,它也谈到了我提到的GPS事情。整个系列是非常值得您的带宽和时间下载和观看:

http://channel9.msdn.com/Series/Mango-Jump-Start/Mango-Jump-Start-06-Windows-Phone-Multi-tasking--Background-Tasks

不能回答的iPhone。

+0

你能详细一点吗?当GPS轮询时,我可以运行我的代码,或者直到应用程序可见时才转到某个存储空间?我需要立即将这些GPS位置发送到服务器。可能? – katit

+0

是的可能,了解后台任务。但是,你会发现你被迫在严格的条件下运行(处理能力很差,时间很短),以便手机保持用户体验。 –

+0

亚当谢谢。我希望这是可能的8个月前,当我写的Android应用程序。我的特殊需要30分钟仍然太多。有什么方法可以模拟较小的跨度?也许有不同的时间运行多个任务? – katit

1

它也可能在ios4 +上,但它不会被时间触发。无论是注册精确(gps)还是模糊的位置(wifi和wan位置),都可以在后台获取,但并不总是可以将该数据发送到服务器,因为在后台10分钟后,您的应用不允许保留一个网络连接活着。所以你必须缓冲这些数据,并且必须等到用户启动你的应用程序。

iOS的推通知,这取决于所需的准确性您的应用程序,并取决于distance-filter

IOS的​​应用服务和活动(如在机器人)之间没有什么不同。它全部结合在一个应用程序中。

+0

那么,像我的网站上的应用程序基本上不可能与iOs? – katit

+0

是。跟踪是可能的,但只有当应用程序“打开”(不在后台)时才能以可靠的方式发送实时流量 – thomas

+0

我知道这是不可能的。在我的情况下 - 驱动程序可能每天使用一次应用程序发送消息或获取负载信息。但办公室需要知道他在哪里。所以,大部分时间都关闭了应用程序(90%的时间)。我是否正确理解在上次应用程序使用大约30分钟后无法将更新发送到服务器? – katit

0

在WP7芒果,你不能从后台代理获取新的位置。以下代码将返回最新可用位置(最长15分钟):

private GeoPosition<GeoCoordinate> GetCachedLocation() 
{ 
    GeoCoordinateWatcher geoWatcher; 
    geoWatcher = new GeoCoordinateWatcher(); //Start a new watcher with default level of accuracy 
    geoWatcher.Start(); 
    //Get latest cached position 
    GeoPosition<GeoCoordinate> position = geoWatcher.Position; 
    geoWatcher.Stop(); 
    return position; 
} 

如您所见,它使用GeoCoordinateWatcher。根据MSDN(http://msdn.microsoft.com/en-us/library/hh202962(v=vs.92).aspx):

此API用于获取设备的地理坐标, 支持在后台代理中使用,但它使用缓存的 位置值而不是实时数据。设备每隔15分钟更新缓存的位置值 。

除此之外,我还没有找到很多信息。你可以创建一个自定义精度的GeoCoordinateWatcher,但我没有测试过。也许它会返回满足精度要求的最新可用缓存位置。

相关问题