Доступ запретил поиск свойства "camera.hal1.packagelist"

При использовании камеры в сервисе мобильный экран становится не трогательным (заблокирован прозрачным окном) и только ниже ошибки происходит

Access denied finding property "camera.hal1.packagelist"

Какова будет причина и ее решение? Пожалуйста, помогите..

Ответ 1

Я работал с учебным кодом OpenCV для приложения камеры на Android. Я столкнулся с той же ошибкой, и после просмотра ответов я действительно пропустил одно разрешение.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Хотя приложение не сохраняет никаких данных извне, без этого разрешения возникает ошибка отказа в доступе. Надеюсь, поможет.

Ответ 2

Я получил ту же ошибку в моем приложении, я использовал вид поверхности, и его вес был установлен на ноль. Я изменил его обратно на 1, и ошибка была устранена. Проверьте свой код XML, это может помочь.

Ответ 3

Пожалуйста, посмотрите, запрашиваете ли вы разрешение камеры у пользователя. Просто указание разрешения в манифесте не сработает выше определенного уровня Android.
Это решит вашу проблему.

Как запросить разрешение перейдите по этой ссылке.

Ответ 4

У меня была такая же проблема с Camera 1 API на моем тестовом устройстве "LG V30". Я обнаружил, что это сообщение (Access denied finding property "camera.hal1.packagelist") появилось, когда я открыл камеру следующим образом:

int numberOfCameras = Camera.getNumberOfCameras();
CameraInfo cameraInfo = new CameraInfo();
for (int i = 0; i < numberOfCameras; i++) {
    Camera.getCameraInfo(i, cameraInfo);
    if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) {
        camera = Camera.open(i);
        cameraId = i;
    }
}

Важно то, что это произошло только для LG V30, который имеет 2 задние камеры (numberOfCameras=3).

После некоторого тестирования я узнал, что это работает для этого устройства:

/** A safe way to get an instance of the Camera object. */
public static Camera getCameraInstance(){
    Camera c = null;
    try {
        c = Camera.open(); // attempt to get a Camera instance
    }
    catch (Exception e){
        // Camera is not available (in use or does not exist)
    }
    return c; // returns null if camera is unavailable
}

Приведенный выше пример кода будет обращаться к первой, обращенной назад камере на устройстве с несколькими камерами. Здесь вы можете найти подробное описание.