Я работаю над разрешением Android для M.Запрос разрешения со службы. Android M
В моем приложении в моей деятельности я запускаю сервис, где я использую следующий код для камеры.
Код для открытия камеры в службе
cameraManager.openCamera(frontFacingCameraId, stateCallback, null);
Я проверил некоторые документации и я обнаружил, что я не могу разрешение запрос в службу, мне нужно спросить разрешение на деятельность. Поэтому я прошу разрешения в своей деятельности.
активность, где запрашивающих разрешение
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;
}
}
Но в службе в строке выше она все еще бросает ошибку за исключением безопасности.
Может кто подскажет, где я делаю ошибку? И есть ли способ запросить разрешение на обслуживание?
Делитесь своим кодом, пожалуйста. С такой большой информацией все догадываются. Если вы не хотите, чтобы ответ отвечал, что вы не запрашиваете разрешения правильно. – SubliemeSiem
Просим разрешения в действии до начала обслуживания! –