LocationUtils
package com.ruidonghy.zbase.utils;
import android.content.Intent;
import android.location.LocationManager;
import android.provider.Settings;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;
import com.ruidonghy.zbase.base.BaseApplication;
import static android.content.Context.LOCATION_SERVICE;
/**
* Created by zhou on 2017/11/29 14:40 .
*/
public class LocationUtils {
private static LocationUtils instance;
private AMapLocationClient mLocationClient = null;
public static final LocationUtils instance()
{
if(instance==null){
instance = new LocationUtils();
}
return instance;
}
private LocationUtils(){//单例模式私有化构造
mLocationClient = new AMapLocationClient(BaseApplication.instance());
initOption();
}
public void requestLocation(AMapLocationListener locationListener){
mLocationClient.setLocationListener(locationListener);
mLocationClient.startLocation();
}
public void unRegistListener(AMapLocationListener locationListener){
mLocationClient.unRegisterLocationListener(locationListener);
}
private void initOption() {
AMapLocationClientOption option = new AMapLocationClientOption();
//高精度模式
option.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
// //设置定位间隔,单位毫秒,默认为2000ms,最低1000ms。
// option.setInterval(spaceTime);
option.setOnceLocation(true);
//设置是否返回地址信息(默认返回地址信息)
option.setNeedAddress(true);
//设置是否允许模拟位置,默认为true,允许模拟位置
option.setMockEnable(false);
//关闭缓存机制
option.setLocationCacheEnable(false);
//设置定位参数
mLocationClient.setLocationOption(option);
}
/**
* 判断Gps是否可用
*
* @return {@code true}: 是<br>{@code false}: 否
*/
public static boolean isGpsEnabled() {
LocationManager lm = (LocationManager) AppUtils.getApp().getSystemService(LOCATION_SERVICE);
return lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
/**
* 判断定位是否可用
*
* @return {@code true}: 是<br>{@code false}: 否
*/
public static boolean isLocationEnabled() {
LocationManager lm = (LocationManager) AppUtils.getApp().getSystemService(LOCATION_SERVICE);
return lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER) || lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
/**
* 打开Gps设置界面
*/
public static void openGpsSettings() {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
AppUtils.getApp().startActivity(intent);
}
}
复制代码
转载于:https://juejin.im/post/5b585190f265da0f86543653