在我的一个移动应用程序中,我想使用 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/