android - Android App如何查看设备是空闲还是移动?

标签 android device accelerometer hardware-acceleration

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

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

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

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

我是 Android 新手。

谢谢 京东

最佳答案

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

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

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

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

关于android - Android App如何查看设备是空闲还是移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59280334/

相关文章:

android - 如何检测Android屏幕方向改变

Xcode 无法检测到设备

谁能解释什么是 Windows HAL 以及它的用途?

mobile - J2ME加速度计有什么好的引用资料吗,我似乎没有找到

c++ - 使用具有传感器融合的 9DOF IMU 在 C++ 中进行双积分加速

java - Android——从 findViewById(R...) 分配的 SurfaceView 不允许访问自定义字段

android - 无法在 android 上构建应用程序。多个链接错误

android - 什么是重启期间的 Android "optimising"?

ios - 如何将加速度计g力值转换为度

android - 如何使用Mobile SDK获取DJI Phantom 4 Pro的避障传感器数据