Android 定位服务和位置权限

做地图功能时,在之前只需要一个位置权限即可,但不知道什么时候加了个定位服务,还是在系统设置里面。Android 定位服务和位置权限_第1张图片

看代码:lm.isProviderEnabled(LocationManager.GPS_PROVIDER);这一句就是定位服务的判断,如果没有开启定位服务,就跳到系统定位服务设置界面。

剩下的就是动态权限和非动态权限的方式了。

权限申请还是正常的在启动页申请,这一段在定位功能调用的时候使用

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
boolean ok = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (ok) {//开启了定位服务
      if (Build.VERSION.SDK_INT >= 23) {
           if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                //没有权限,现在申请权限
                ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.ACCESS_FINE_LOCATION}, ChatInputView.BAIDU_READ_PHONE_STATE);
           } else {
                createGroupMapView();
           }
      } else {
           createGroupMapView();
      }
} else {//未开启定位服务
     ToastUtil.showToast("系统检测到未开启GPS定位服务,请开启");
     Intent i = new Intent();
     i.setAction(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
     startActivityForResult(i, ChatInputView.PRIVATE_CODE);
}

 

你可能感兴趣的:(Android 定位服务和位置权限)