我的应用程序启动时只需要一个粗略的位置服务.
详细地说,我需要应用程序的粗略位置,以便为用户提供附近的商店信息.
该位置不需要不断更新.此外,在这种情况下,粗略定位就足够了.
我希望应用程序自动选择GSM,wifi或GPS,无论哪个可用.
定位服务也应该是一次性的,以节省电话能量.
我该怎么办?
我曾尝试单独使用GPS.
我的问题是我不知道如何停止GPS的持续刷新位置功能.我不知道如何让手机从三种方法中选择一种.
非常感谢一些示例代码或想法.
我正在考虑有两个单独的警报来每小时收集用户的位置数据,一个每隔59分钟关闭一次以"连接"客户端,第二个实际获取位置然后断开客户端.
就电池寿命而言,如果获取用户的位置将成为应用程序的主要消耗,我还应该考虑做些什么吗?或者,有两种警报有不同的方法吗?我最初只有一个警报,但执行(!mLocationClient.isConnected)然后连接检查不会给客户端足够的时间连接.
感谢您的见解.
这两个警报会像这样:
private int PERIODIC_UPDATE = 60000*60; //gets location and disconnects every hour
private int PERIODIC_RECONNECTION_UPDATE = 60000*59; //connects 1 minute before getLocation call
Timer toReconnect = new Timer();
toReconnect.schedule(new TimerTask() {
@Override
public void run() {
mLocationClient.connect();
}
}, 5000, PERIODIC_RECONNECTION_UPDATE);
Timer theTimer = new Timer();
theTimer.schedule(new TimerTask(){
@Override
public void run() {
try {
if(!mLocationClient.isConnected()) {
mLocationClient.connect();
//This will not have much affect because cannot so quickly, will remove.
}
Location theLocation = mLocationClient.getLastLocation();
if(theLocation!=null) { …Run Code Online (Sandbox Code Playgroud)