0

我在一个 android 应用程序中有一项服务,我必须每 10 分钟向服务器发送一次位置更新。我已经为此打电话了休息服务。只有在位置发生变化时,它才会每 10 分钟向服务器提供一次位置更新。当没有位置更改时,我想将最后一次已知的位置更新发送到服务器。任何人都可以建议我如何做到这一点或任何例子都会是有益的..提前谢谢

4

4 回答 4

0

我正在做一些非常相似的事情,只要位置发生变化,我就会将其存储在名为 Long 和 Lat 的双打中。我只是在需要时检查这些变量。

于 2013-09-13T12:11:49.887 回答
0

我的建议是使用共享首选项。

在将位置发送到服务器之前,将其存储在 sharedpreferences 中。您可以直接从存储的共享首选项中获取,而不是使用服务器或 LocationManager 作为最后一个位置。

于 2013-09-13T12:43:11.247 回答
0

你有getLastKnownLocation方法:

Criteria criteria = new Criteria();

String provider = mLocationManager.getBestProvider(criteria, false);
Location location = mLocationManager.getLastKnownLocation(provider);

顺便说一句,您可以配置Criteria敌人示例:

criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setCostAllowed(false);

如果你想用 绑定最后一个已知位置onLocationChanged,只需调用:

this.onLocationChanged(location); 
于 2013-09-13T12:06:34.053 回答
0

为此,您必须使用服务。

并尝试在后台获取位置并继续检查它,以便更好地使用服务中的处理程序每​​ 10 分钟运行一次线程并维护一个变量,它保存以前的位置值。并在您获得位置时检查该值。

查看此示例以获取位置

http://javapapers.com/android/get-current-location-in-android/

那是在活动中编写的,而不是您必须使用服务。

于 2013-09-13T12:08:42.900 回答