【发布时间】:2015-03-27 20:36:20
【问题描述】:
我正在开发一个 Android 应用程序;此应用程序需要定期(每 10 分钟)将当前位置(坐标)发送到 Web 服务。但是......我对更正确的方法(并且对设备电池更友好)有点困惑。
我读了这个answer,她的方法_getLocation()看起来不错;但我不知道该方法是否可以获得我需要的位置的可用性;总可用性...
我想,如果使用 GSM / WIFI 无法获得位置,应用程序选择 GPS 方法。
这就是这种方法的原因吗?
private void _getLocation() {
// Get the location manager
LocationManager locationManager = (LocationManager)
getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(bestProvider);
try {
lat = location.getLatitude();
lon = location.getLongitude();
} catch (NullPointerException e) {
lat = -1.0;
lon = -1.0;
}
}
有人知道一种定期获取设备坐标的方法...而不会显着增加电池消耗吗?
【问题讨论】:
-
如果您担心电池消耗和位置更新有点晚,您应该检查 PassiveProvider。它依赖于使用定位服务的其他应用程序。
-
首先;谢谢你的评论。是的,我很担心这些事情。你能给我一个
PassiveProvider的例子吗? -
在下面查看我的答案。
标签: android google-play-services locationmanager android-location battery-saver