做地图功能时,在之前只需要一个位置权限即可,但不知道什么时候加了个定位服务,还是在系统设置里面。
看代码: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)