我尝试使用Camera.open()访问相机 但它会引发异常无法连接到相机服务。
我在设置 - >应用 - > MyApp->权限 - >相机中检查了相机权限,但未授权。 我已经在android清单中添加了相机权限。
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera2" android:required="true"/>
为什么第一次不会自动授予? 处理这个问题的最佳做法是什么?
答案 0 :(得分:1)
首先检查用户是否授予权限:
if (ContextCompat.checkSelfPermission(context, Manifest.permission.CAMERA)
== PackageManager.PERMISSION_DENIED)
然后,您可以使用它来向用户请求:
ActivityCompat.requestPermissions(activity, new String[] {Manifest.permission.CAMERA}, requestCode);
在棉花糖和后来,它出现了对话
请求权限警报后,将显示询问权限包含允许和拒绝选项。点击操作后,我们可以使用以下方法获得请求的结果。
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == MY_CAMERA_REQUEST_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "camera permission granted", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "camera permission denied", Toast.LENGTH_LONG).show();
}
}
}
如果你不相信我,我已经从here得到答案。