Android Studio 2 - Camera SecurityException

时间:2016-04-11 14:34:08

标签: java android android-studio

我尝试使用相机意图来捕捉照片并在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));

}

避免收到上述例外的正确清单权限是什么?

1 个答案:

答案 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