2012-01-29 104 views
0

我想知道是否可以创建一个android应用程序,每150个应用程序获取移动位置并更新我的java web服务器。在Android应用程序获取位置更新

我想让android应用程序做的每一步都是为了更新每个150 mts的详细信息,而且它并不期待我们服务器的任何响应或确认。

这可以通过与jsp或servlert或任何其他技术进行通信来完成。

甚至在移动车辆时获取位置详细信息以及将详细信息更新到我的Web服务器以维护数据库中的详细信息的最佳方法是什么?

任何人都可以提供任何样品,并建议最有效的方法做同样的方法。

回答

1

最好的方法是注册一个服务,定义一个自定义位置监听器。在实现中,重载onLocationChanged()并且你可以获得位置(lat,long)元组,你可以用GET/POST请求更新服务器。看看参考代码。

@Override 
public void onLocationChanged(Location loc) { 
    loc.getLatitude(); 
    loc.getLongitude(); 
    String Text = "Location : (" + loc.getLatitude() +","+ loc.getLongitude() + ")"; 
} 

随意问你是否有任何疑问。您可以调整更新请求的频率。

由于

+0

在位置与服务器的通信中使用Web服务(REST)还是普通的jsp/servlet有什么区别。如何设置一个对此有帮助的web服务。以及如何调整Web服务的频率更新。 – 2012-01-29 10:46:11

+0

就是这样,你在服务器端使用什么来请求“设备位置改变的事件”,告诉服务器更新设备的位置。我对JSP/Servlet一无所知。要调整频率,您应该使用算法来查找变化是否显着。如果您有兴趣,我会将该代码也作为参考。通过“服务”这个词,我提到了android服务,而不是一个web服务:http://developer.android.com/reference/android/app/Service.html – 2012-01-29 11:11:50

+0

是please.Can您可以发布代码检查是否与先前记录的位置相比有重大变化。 – 2012-01-29 11:35:24

0

抓取位置与该频率可能会耗尽电池的用户。但无论如何。

编写foursquare客户端的Joe Lapenna提供了一个位置类,它提供了理智的逻辑来抓取最准确的位置,给出不同的来源和参数。

http://code.google.com/p/foursquared/source/browse/main/src/com/joelapenna/foursquared/location/BestLocationListener.java

谷歌和Android开发者写了关于最有效的方式来获取在这篇博客的位置更新:

http://android-developers.blogspot.com/2011/06/deep-dive-into-location.html

+0

如果电池问题无法解决问题,但无论如何都应该采购每150mts的新位置。那么我可以采用哪种方法。通常,在Android应用程序中采购手机自己的位置所需的平均最短时间是多少。 – 2012-01-29 10:58:54

0

谷歌提供了完整的源代码,以便在这样的应用http://code.google.com/p/mytracks/。该应用程序的主页位于http://mytracks.appspot.com/。这是开发此类应用程序的一个很好的起点。

该应用程序将您的曲目完整地存储在您的设备上,并允许导出到SD卡或Google文档或Google地图。您可以轻松扩展应用程序以将曲目发送到您自己的服务器应用程序。

不要将每一个位置都发送到服务器,因为这会花费很多资源。当你在服务器上使用Java时,它总是一个servlet。我建议使用REST和其中一个可用的库。

+0

mytracks专注于获取手机周围的地方。如果我可以获取手机本身的位置并将其传输到我的网络服务器,那就会很有帮助,而且它可以与位置数据一起工作,如测试它是否接收到的位置离预先记录的位置更近或更远。我该如何解决这个问题。 – 2012-01-29 11:04:31

+0

不,mytracks会记录您的曲目并使您能够上传或查看曲目。此应用程序包括您所要求的所有技术,并且是学习为您自己开发基于位置的应用程序的良好起点。 – ChrLipp 2012-01-29 11:40:17