如何检查设备是否处于空闲状态或是否在Android App中移动?

问题描述 投票:1回答:2
  • 在我的一个移动应用程序中,我想使用Android设备的GPS存储用户的实时纬度和经度。

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

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

  • [] Android Library中是否有任何方法可以检测到设备是否在移动?如果设备放在口袋里,或者我将其放在钱包里,必须检查我是否在行走或睡觉或汽车是否在行驶。

我是Android的新手。

谢谢JD

android device accelerometer hardware-acceleration
2个回答
1
投票

将上次发送的纬度和经度保存在共享首选项中,并计算上一位置和当前位置之间的距离,如果距离更大,则将新位置更新到服务器。

要计算距离,请使用此功能

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

请注意,持续获取位置信息会更快耗尽用户的电池。


1
投票

您可以使用android中的活动识别API来实现。有各种活动可以识别。https://developer.android.com/guide/topics/location/transitions

© www.soinside.com 2019 - 2024. All rights reserved.