У меня есть очень большая проблема (Почему приложение не видит разрешения Camera2API?
Я работаю с Camera2API и и я использую для него стандартного примера Google.
Mystic, когда я использую этот метод
private void openCamera(int width, int height) {
setUpCameraOutputs(width, height);
configureTransform(width, height);
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
try {
if (!mCameraOpenCloseLock.tryAcquire(2500, TimeUnit.MILLISECONDS)) {
throw new RuntimeException("Time out waiting to lock camera opening.");
}
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) !=
PackageManager.PERMISSION_GRANTED) {
return;
}
manager.openCamera(mCameraId, mStateCallback, mBackgroundHandler);
} catch (CameraAccessException e) {
e.printStackTrace();
} catch (InterruptedException e) {
throw new RuntimeException("Interrupted while trying to lock camera opening.", e);
}
}
Я использую Samsung S6 android 6.0
Я ожидаю, что метод manager.openCamera(mCameraId, mStateCallback, mBackgroundHandler);
- открывает камеру, но вместо этого кода останавливая в
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) !=
PackageManager.PERMISSION_GRANTED) {
return;
}
, насколько я понимаю, это означает, что мой манифест не содержит разрешения, но я проверил и есть соответствующее разрешение
<uses-permission android:name="android.permission.CAMERA" />
Что это значит?
У меня есть это разрешение, почему оно не проходит проверку?
Я пытался запускать это приложение на Meizu MX5 android 5.1
и он открывает камеру и все в порядке ...
Может быть, проблема в androind версии?
Что я делаю неправильно? Как я могу проверить это?
Если вы являетесь целевым Api - 23, у вас есть проверка разрешения времени выполнения. Посмотрите этот пример https://github.com/googlesamples/android-RuntimePermissions –