I am working on Android Permission for M.
In my app in my activity I am starting a service, where I am using following code for Camera.
Code for Opening Camera in Service
cameraManager.openCamera(frontFacingCameraId, stateCallback, null);
I checked some documentations and i found that I cant request permission in service, I need to ask the permission in activity. So I am asking the permission in my activity.
Activity where requesting permission
if (PermissionUtil.getCameraPermission(this)) {
                    Debug.d(TAG, "Camera Permission -- permission exsited");
                    performRecordingAction();
                }
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    switch (requestCode) {
        case PermissionUtil.SDK__CAMERA_PERMISSION:
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                Debug.d(TAG, "Granted -- Camera Permission");
                performRecordingAction();
            } else {
                Debug.d(TAG, "Denied -- Camera Permission");
                // permission denied, boo! Disable the
                // functionality that depends on this permission.
            }
            break;
    }
}
PermissionUtil
public static boolean getCameraPermission(Activity activity) {
    Debug.d(TAG, "getCameraPermission");
    int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.CAMERA);
    if (permission != PackageManager.PERMISSION_GRANTED) {
        if (ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.CAMERA)) {
            Debug.d(TAG, "Already Denied -- Camera Permission");
            return false;
        } else {
            Debug.d(TAG, "Request Camera Permission");
            ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.CAMERA}, SDK__CAMERA_PERMISSION);
            return false;
        }
    } else {
        return true;
    }
}
But in service at above line it is still throwing error for security exception.
Can anyone suggest where I am making mistake? And is there any way to request permission from service?
 
     
     
     
    