Android M - разрешено отклонение разрешения камеры. PERMISSION_GRANTED

1

Я тестирую отказ в доступе к приложению, и я вижу, что при запросе состояния разрешения он возвращает предоставленные вместо отказа.

Изображение 174551

Я проверяю состояние разрешений в соответствии с Google Guide:

    if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA)
            != PackageManager.PERMISSION_GRANTED) {

        // Should we show an explanation?
        if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(),
                Manifest.permission.CAMERA)) {

            // Show an expanation to the user *asynchronously* -- don't block
            // this thread waiting for the user response! After the user
            // sees the explanation, try again to request the permission.

        } else {

            // No explanation needed, we can request the permission.

            ActivityCompat.requestPermissions(getActivity(),
                    new String[]{Manifest.permission.CAMERA},
                    PERMISSIONS_REQUEST_TAKE_PHOTO);

            // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
            // app-defined int constant. The callback method gets the
            // result of the request.
        }
    }

Вот что он на самом деле возвращает в первом, если:

Изображение 174551

Состояние "0" означает PackageManager.PERMISSION_GRANTED

Это порождает ошибку java.lang.RuntimeException: Fail to connect to camera service.

DEVICE IS A NEXUS 5X

С уважением.

  • 0
    Какова ваша цельSdkVersion?
  • 0
    @laalto Первоначально его 21 попытался с 23 также, тот же результат.
Показать ещё 5 комментариев
Теги:
android-6.0-marshmallow
android-camera

1 ответ

1
Лучший ответ

Quotig @CommonsWare:

Вы должны получить PERMISSION_GRANTED для любого targetSdkVersion ниже 23, даже если пользователь отключил эту группу разрешений в настройках. Я предлагаю вам полностью удалить приложение, установите для targetSdkVersion значение 23 и повторите попытку.

Это было решение.

(Этот ответ будет помечен правильно, пока комментатор не отправит ответ)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню