1.是否注册权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
2./判断是否获得定位权限
//判断是否获得定位权限
private boolean checkPermissionGranted(String permission) {
return PermissionChecker.checkPermission(this, permission, android.os.Process.myPid(), android.os.Process.myUid(), getPackageName()) == PackageManager.PERMISSION_GRANTED;
}
boolean isLocation1 = checkPermissionGranted(Manifest.permission.ACCESS_FINE_LOCATION);
boolean isLocation2 = checkPermissionGranted(Manifest.permission.ACCESS_COARSE_LOCATION);
```if(isLocation1 && isLocation2) {
//获取成功的操作
...
}else{
Toast.makeText(MainActivity.this,"获取位置失败,未开启定位权限!", Toast.LENGTH_SHORT).show();
}
3.是否开启定位服务
/**
* 判断GPS是否开启,GPS或者AGPS开启一个就认为是开启的
* @param context
* @return true 表示开启
*/
public static final boolean isOPenGPS(final Context context) {
LocationManager locationManager
= (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
// GPS定位
boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
// 网络服务定位
boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (gps || network) {
return true;
} return false;
}