对于Android应用程序,如何检查设备是否空闲或正在移动?

对于Android应用程序,如何检查设备是否空闲或正在移动?,android,device,accelerometer,hardware-acceleration,Android,Device,Accelerometer,Hardware Acceleration,在我的一个移动应用程序中,我想使用Android设备的GPS实时存储用户的经纬度 为此,我将使用API发送设备的纬度和经度值,并将每隔10秒调用该API 但是,当设备处于空闲模式且不在任何地方移动时,我不想通过API发送请求以避免服务器上不必要的负载 Android库中是否有任何方法可以检测设备是否正在移动?如果设备在口袋里,或者我把它放在钱包里的车里,它必须检查我是否在走路或睡觉,或者车是否在移动 我是Android的新手 谢谢 JD将上次发送的纬度和经度保存在共享的prefs中,并计算最后

在我的一个移动应用程序中,我想使用Android设备的GPS实时存储用户的经纬度

  • 为此,我将使用API发送设备的纬度和经度值,并将每隔10秒调用该API

  • 但是,当设备处于空闲模式且不在任何地方移动时,我不想通过API发送请求以避免服务器上不必要的负载

  • Android库中是否有任何方法可以检测设备是否正在移动?如果设备在口袋里,或者我把它放在钱包里的车里,它必须检查我是否在走路或睡觉,或者车是否在移动

  • 我是Android的新手

    谢谢
    JD

    将上次发送的纬度和经度保存在共享的prefs中,并计算最后一个位置和当前位置之间的距离,如果距离大于此值,则将新位置更新到服务器

    要计算距离,请使用此函数

     private float calculateLocationDifference() {
        float[] dist = new float[1];
        Location.distanceBetween(lastLocation.getLatitude(), lastLocation.getLongitude(), currentLocation.getLatitude(), currentLocation.getLongitude(), dist);
        return dist[0];
    }
    

    请注意,持续获取位置将更快地消耗用户电池。

    您可以使用android中的活动识别API实现这一点。有各种活动需要识别。

    这就是为什么我想检查设备是否在移动,而不是使用GPS定位。如果手机一直在移动,它应该调用API并将数据存储在数据库中。没有其他方法可以检测设备是否在移动。我所说的方法只会减轻服务器的负担,而不是用户的负担