Разрешения камеры не запрашиваются, но все еще работают - PullRequest
1 голос
/ 17 апреля 2020

Файл манифеста:

    <uses-permission android:name="android.permission.CAMERA" android:requiredFeature="true" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:requiredFeature="true" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:requiredFeature="true"/>

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

val takePhotoIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)

Я не уверен, почему.

Это несмотря на то, что приложению не предоставлено никаких разрешений: enter image description here

Ответы [ 3 ]

2 голосов
/ 23 апреля 2020

Причина, по которой это работает, заключается в том, что ваше приложение не получает доступа ни к одному из:

  • Сама камера
  • Внутреннее / внешнее хранилище пользователя
  • существующие фотографии пользователя

Все, что вы получаете, - это возможность попросить пользователя сделать фотографию и вернуть ее вам. Поскольку пользователю необходимо дать согласие как часть процесса, разрешения не требуется.

Преимущество этой модели также заключается в том, что приложения могут захватывать фотографии, даже если пользователь не будет доверять им права доступа к камере или хранилищу. Они могут быть уверены, что приложение получило доступ только к одной фотографии, которую сделал пользователь. Тот же принцип применяется и при выборе пользователем фотографии.

1 голос
/ 23 апреля 2020

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

0 голосов
/ 18 апреля 2020

Это может быть потому, что вы запускаете его на более старом API или уже предоставили эти привилегии приложению на этот раз. Другая возможность: ваше устройство рутировано.

...