Android Fail to connect to camera service, location provider requires ACCESS_COARSE_LOCATION permiss

升级过gradle后运行应用发现拍照和定位功能不能用了,查看log日志重点的错误信息分别如下:

java.lang.RuntimeException: Fail to connect to camera service
location provider requires ACCESS_COARSE_LOCATION permission.

 两个解决方式

1 将gradle中编译SDK改为22以下。自Android6.0后系统加强了隐私保护,只是在清单文件添加权限申请前提下还得要动态获取权限。

2 动态获取权限

定位:

private static final int MY_PERMISSION_LOCATION = 255;//0-255
private void gpsPremissionCheck() {
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
				&& this.checkSelfPermission(
				Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED
				&& this.checkSelfPermission(
				Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
			requestPermissions(
					new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,
							Manifest.permission.ACCESS_FINE_LOCATION},
					MY_PERMISSION_LOCATION);
		} else {
			//SDK编译版本低于22,直接运行
		}
	}

	@Override
	public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
		super.onRequestPermissionsResult(requestCode, permissions, grantResults);
		if (requestCode == MY_PERMISSION_LOCATION
				&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
			//申请权限成功,do some thing you want.
		}else {
			//finish();
		}
	}

拍照:


/** 获取权限*/
	private void getPermission() {
		if (Build.VERSION.SDK_INT>22){
			if (ContextCompat.checkSelfPermission(this,
					android.Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED){
				//先判断有没有权限 ,没有就在这里进行权限的申请
				ActivityCompat.requestPermissions(this,
						new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE},CAMERA_OK);
			}else {
				//说明已经获取到摄像头权限了
			}
		}else {
			Log.i("MainActivity","这个说明系统版本在6.0之下,不需要动态获取权限。");
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值