Запрос разрешений камеры в представлении - PullRequest
1 голос
/ 16 мая 2019

У меня настроенный Android SurfaceView, который я использую для отображения видеопотока с камеры. Для доступа к камере мне нужно получить соответствующие разрешения от пользователя.

Документация по Android объясняет, как это делается с использованием методов checkSelfPermission, shouldShowRequestPermissionRationale и requestPermissions.

Теперь я хотел бы запросить разрешения непосредственно из настроенного представления (не пытайтесь объяснить мне, что это плохая практика и т. Д.).

Причина, по которой мне не удается этого сделать, заключается в том, что, похоже, нет способа сообщить Android, где найти обратный вызов ActivityCompat.OnRequestPermissionsResultCallback. Похоже, что Android автоматически ожидает, что он будет частью Activity или Fragment, в котором находится мой измененный вид.

Я пропускаю вызов <whatever>.setCallback(this), который я мог бы добавить в свой код пользовательского представления после реализации ActivityCompat.OnRequestPermissionsResultCallback непосредственно в представлении.

Неужели нет никакого хакерского способа запрашивать разрешения в представлении Android?

Ответы [ 2 ]

3 голосов
/ 16 мая 2019

Похоже, что Android автоматически ожидает, что он станет частью Действия или Фрагмента, в котором размещено мое измененное представление

Correct.

Неужели нет никакого хакерского способа запрашивать разрешения в представлении Android?

Correct.

1 голос
/ 16 мая 2019

Поместите метод onPermissionResult в действие / фрагмент, который вызывает его, и создайте открытый метод внутри представления «continueAfterPermission» и вызовите его из родительского действия / фрагмента.

А для запроса разрешения у представления вы можетепередать контекст из действия / фрагмента в представление, просто сделайте переменную Context общедоступной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...