gpt4 book ai didi

java - 了解设备是否移动并注册 GPS 坐标

转载 作者:行者123 更新时间:2023-12-01 15:03:10 25 4
gpt4 key购买 nike

我正在开发一个应用程序,我想在互联网上检查一些信息,但我只想在设备移动 X 米时才执行此操作。例如,如果用户移动了300米,则调用服务器,如果没有移动,则不执行任何操作。但我认为我不能启动一个服务来一直监听 GPS 坐标并计算距离,因为电池会很快耗尽。

我的问题是:Android 有什么方法可以启动服务或发送广播警告我 GPS 坐标已更改 X 米?

目前我有一个 AlarmManager,每 30 分钟获取一次 GPS 坐标,但我需要更准确。

最佳答案

使用LocationManager.requestLocationUpdates();方法;您可以指定发送更新的最短时间(以秒为单位),以及更新前的最小米数。

应该看起来像这样:

//in milliseconds
private final int MINIMUM_TIME_BETWEEN_UPDATES = 5000;

//in meters
private final int MINIMUM_DISTANCE_BETWEEN_UPDATES = 1;

LocationManager lManager =(LocationManager)this.getSystemService(Context.LOCATION_SERVICE); 
LocationListener = listener = new LocationListener() {

public void onStatusChanged(String provider, int status, Bundle extras) {
}

public void onProviderEnabled(String provider) {
}


public void onProviderDisabled(String provider) {
}

public void onLocationChanged(Location location) {
}

};

lManager.requestLocationUpdates(bestProvider, MINIMUM_TIME_BETWEEN_UPDATES, MINIMUM_DISTANCE_BETWEEN_UPDATES, listener);

这会创建一个LocationManager使用指定的位置提供商(GPS 或网络)、指定的秒数和指定的米数。位置管理器将更新发送到“LocationListener”。每当收到更新时都会调用 onLocationChanged。 bestProvider 变量可以通过使用 LocationManager.getBestProvider() 找到;和 Criteria 类。

关于java - 了解设备是否移动并注册 GPS 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13341068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com