使用GPS检测固定设备

时间:2012-06-26 16:58:33

标签: android gps

我正在创建一个应用程序,如果用户静止了几分钟(比如说10),就会提醒用户。

我发现使用LocationListener可以很容易地检测到动作,如果设备移动了一定距离,它会触发一个函数。

然而,我想要一些与众不同的东西。如果设备在一段时间内没有移动,我希望调用一个函数。

我是如何实现这一目标的?

2 个答案:

答案 0 :(得分:1)

您可以轻松设置计时器,当LocationListener触发时,将计时器重置为零。如果计时器达到10分钟,那么您就知道用户没有移动。这种方法的缺点是计时器必须继续运行,因此您需要安装为服务。

http://developer.android.com/reference/java/util/Timer.html

答案 1 :(得分:1)

这样的事情可能会解决这个问题我不确定这段代码是否有效,我还没有测试过,但一般来说你需要做的就是获取当前位置。然后使用计时器在10分钟内检查它是否仍然在同一位置。如果不是意图开始一项新活动。

private double locationcheck;

locationcheck = this.getcurrentlocation();

public double[] getcurrentlocation(){
double[] locations= new String[2];
l = lm.getLastKnownLocation(providers.get(i));
locations[0] = l.getLatitude();
locations[0] = l.getLongitude();
return 
}

然后使用此方法检查它:

 final Handler handler = new Handler(); 
           Timer t = new Timer(); 
            t.schedule(new TimerTask() { 
                    public void run() { 
                            handler.post(new Runnable() { 
                                    public void run() { 

                                        if (locationcheck!=this.getcurrentlocation()) {

    Intent i=new Intent(ctxt, YourActivity.class);
        StartActivity(i);

                                        }   
                                    } 
                            }); 
                    } 
            }, 3000,10000);