帮我写一个APP获取用户当前位置的工具类
时间: 2023-06-13 08:02:55 浏览: 114
iOS 获得用户当前位置
5星 · 资源好评率100%
好的,以下是一个简单的获取用户当前位置的工具类的示例代码,你可以自行在你的APP中进行修改和使用:
```
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
public class LocationUtils {
private static final int MIN_TIME = 1000; // 定位间隔时间,单位毫秒
private static final float MIN_DISTANCE = 10; // 定位间隔距离,单位米
public interface LocationCallBack {
void onLocationSuccess(Location location);
void onLocationFailed();
}
public static void getLocation(Context context, final LocationCallBack callBack) {
// 获取位置管理器
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
// 获取权限
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
callBack.onLocationFailed();
return;
}
// 注册监听器
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME, MIN_DISTANCE, new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// 定位成功
callBack.onLocationSuccess(location);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
});
// 获取当前位置
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
// 定位成功
callBack.onLocationSuccess(location);
} else {
// 定位失败
callBack.onLocationFailed();
}
}
}
```
使用方法:
1. 在你的APP中调用`LocationUtils.getLocation()`方法并传入`Context`和实现了`LocationCallBack`接口的回调参数。
2. 在回调方法`onLocationSuccess()`中获取到`Location`对象,即为用户当前位置信息。
3. 在回调方法`onLocationFailed()`中处理定位失败的情况。
需要注意的是,在使用该工具类之前,你需要在你的APP中申请获取用户位置信息的权限。
阅读全文