我尝试使用相机意图来捕捉照片并在ImageView中显示。
每次启动相机意图时,都会发生以下异常:
java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE cmp=com.android.camera/.Camera } from ProcessRecord{c4afeea 3037:com.example.jt.testapp/u0a57} (pid=3037, uid=10057) with revoked permission android.permission.CAMERA
致电代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button gallery = (Button) findViewById(R.id.btnGallery);
gallery.setOnClickListener(new Gallery(this));
Button camera = (Button) findViewById(R.id.btnCamera);
camera.setOnClickListener(new Camera(this));
}
避免收到上述例外的正确清单权限是什么?
答案 0 :(得分:4)
您正在使用正确的权限:android.permission.CAMERA
当您想要访问Camera权限时,您必须在运行时在Marshmallow上运行时询问它。
首先检查是否授予了权限,何时不是这种情况,然后请求权限:
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.CAMERA},
0);
}
这在文档中详细解释:http://developer.android.com/training/permissions/requesting.html