Java tutorial
package org.opencv.android; import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.content.pm.PackageManager; import android.os.Build; import android.util.AttributeSet; import android.view.View; import java.util.ArrayList; import java.util.List; import static android.Manifest.permission.CAMERA; public class CameraActivity extends Activity { private static final int CAMERA_PERMISSION_REQUEST_CODE = 200; protected List<? extends CameraBridgeViewBase> getCameraViewList() { return new ArrayList<CameraBridgeViewBase>(); } protected void onCameraPermissionGranted() { List<? extends CameraBridgeViewBase> cameraViews = getCameraViewList(); if (cameraViews == null) { return; } for (CameraBridgeViewBase cameraBridgeViewBase : cameraViews) { if (cameraBridgeViewBase != null) { cameraBridgeViewBase.setCameraPermissionGranted(); } } } @Override protected void onStart() { super.onStart(); boolean havePermission = true; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (checkSelfPermission(CAMERA) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[] { CAMERA }, CAMERA_PERMISSION_REQUEST_CODE); havePermission = false; } } if (havePermission) { onCameraPermissionGranted(); } } @Override @TargetApi(Build.VERSION_CODES.M) public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == CAMERA_PERMISSION_REQUEST_CODE && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { onCameraPermissionGranted(); } super.onRequestPermissionsResult(requestCode, permissions, grantResults); } }