import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
/**
* gps工具類
*/
public class GpsUtil {
/*
獲取一次定位信息
*/
? ? public static Location getLocation(Context context) {
LocationManager manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
? ? ? ? if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Location location =manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
? ? ? ? ? ? if (location !=null) {
return location;
? ? ? ? ? ? }
}
if (manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
Location location =manager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
? ? ? ? ? ? if (location !=null) {
return location;
? ? ? ? ? ? }
}
return null;
? ? }
/**
? ? * @param context you know
? ? * @param minTime? 間隔多久更新
? ? * @param minSpacing? ? 距離變化多大更新
? ? * @param listener? ? ? 回調(diào)
? ? * @return? 成功與否
*/
? ? public static boolean addChangeListen(Context context, int minTime, float minSpacing, LocationListener listener) {
LocationManager manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
? ? ? ? if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime, minSpacing, listener);
? ? ? ? ? ? return true;
? ? ? ? }
if (manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime, minSpacing, listener);
? ? ? ? ? ? return true;
? ? ? ? }
return false;
? ? }
/*
* 設(shè)置這個可以根據(jù)屬性,判斷是使用gps還是network,該工具類沒用到
*/
? ? private static Criteria getCriteria() {
Criteria criteria =new Criteria();
? ? ? ? // 設(shè)置定位精確度 Criteria.ACCURACY_COARSE比較粗略唱较,Criteria.ACCURACY_FINE則比較精細(xì)
? ? ? ? criteria.setAccuracy(Criteria.ACCURACY_COARSE);
? ? ? ? // 設(shè)置是否要求速度
? ? ? ? criteria.setSpeedRequired(false);
? ? ? ? // 設(shè)置是否允許運營商收費
? ? ? ? criteria.setCostAllowed(false);
? ? ? ? // 設(shè)置是否需要方位信息
? ? ? ? criteria.setBearingRequired(false);
? ? ? ? // 設(shè)置是否需要海拔信息
? ? ? ? criteria.setAltitudeRequired(false);
? ? ? ? // 設(shè)置對電源的需求
? ? ? ? criteria.setPowerRequirement(Criteria.POWER_LOW);
? ? ? ? return criteria;
? ? }
public static boolean checkGps(Context context) {
LocationManager manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
? ? ? ? return manager.isProviderEnabled(LocationManager.GPS_PROVIDER) ||manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
? ? }
}