RxPermissions: solo una forma de administrar soluciones en Android M | lähde: Рудольф Коршун | NOP :: Matiz de programación Octubre 2020

Háganos saber lo fácil que es configurar una solución de gestión con la ayuda de todo

Tan pronto como se lanzó Android Marshmallow como parte de la tasa de seguridad, se anunció el proceso de encargarse de todo el evento. resolución – proteger la confidencialidad del usuario. Las aplicaciones de Android le permiten encontrar una solución para acceder a un sistema de datos de uso seguro, como re. Некоторых случаях система автоматически предоставляет разрешение, а иногда пользователю может Та фича с разрешениями переместила безопасность Android на уровень выше, но пока не на самый верхний.

.UNNoсная с этапа разработки, процесс запроса разрешений и обработки его результата представляет некос Это в природе разработчика – искать зависимости или библиотеки, которые позволили бы выполнять работу с меньшими затратами и за более короткое время. Aquí tenemos una hoja de cálculo RxPermissions, que resuelve la situación con una solución funcional. De uno de mis libros favoritos, pensé, que será una pequeña cantidad de números.

RxPermissions: esta biblioteca, que le permite usar RxJava con las soluciones de Android Marshmallow. Sin embargo, para trabajar con esta biblioteca, recomiendo aprender sobre Rx. Para aquellos que no anticipan el uso de Rx, hay varias otras buenas variantes:

  • Diestro: Biblioteca de Android, que proporciona un proceso para solicitar una solución en el período de finalización;
  • Permisos sencillos: biblioteca-bibliografía para el lanzamiento de los logotipos básicos de soluciones de sistema para marketing en Android M;
  • Permisos de despachador: proporciona una API simple basada en anotaciones para el procesamiento de los medios de finalización.

El objetivo de usar estos archivos: preservar la limpieza y seguridad de nuestro código. Con su ayuda puedo recortar el número de plantillas del código de plantilla. Y ahora le dará un conocimiento profundo de la biblioteca RxPermissions.

Deben procesarse tanto como sea posible, así pasaremos por los grilletes. Para el uso de esta biblioteca, su versión del SDK debe ser tan larga como> = 11.

En la raíz o en build.gradle al nivel del proyecto agregue:

projects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}

Además, agregue la dependencia RxPermission en build.gradle en el nivel de la aplicación:

dependencies {
//Rx
implementation 'io.reactivex.rxjava2:rxjava:2.2.12'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation
'com.github.tbruyelle:rxpermissions:0.10.2'
}

Dentro de la actividad o de la farmacia, donde quieras acomodar la resolución de la solución, en primer lugar

// Здесь находится экземпляр активности или фрагмента
val rxPermissions = RxPermissions(this)

Nota: Al iniciar el RxPermission dentro del programa, es necesario presionar el parámetro del diseñador.esta) y los nuevos RxPermissions (fragment.getActivity ()). Es posible conectarse con la inclusión de java.lang.IllegalStateException: FragmentManager ya está realizando transacciones «.

Ahora podemos usar un extracto, iniciado en el ajedrez anticipado, que pide una compañía.

rxPermissions
.request(Manifest.permission.CAMERA,
Manifest.permission.READ_PHONE_STATE)
.subscribe(granted -> {
if (granted) {
// Все запрошенные разрешения предоставлены
} else {
// Как минимум один запрос разрешения отклонен
}
});

¿No es fácil utilizar clases y métodos complementarios? Мы можем легко обработать результат и, основываясь на выходных данных, выполнять нужные нам действ Например, выполнить что-либо при получении разрешения и нажать на «Больше не показывать этот диалог» чтобы перейти на страницу настроек, и так далее.

También podemos solicitar un grupo de soluciones y ofrecer una resolución a cada solicitud de

Solicitud de resultado individual:

private fun requestPermissionsStorage() {
// Должно быть выполнено во время фазы инициализации, например onCreate
rxPermissions?.requestEach(Manifest.permission.READ_EXTERNAL_STORAGE)
?.subscribe { permission: Permission ->
// Будут произведены два объекта Permission
if (permission.granted) {
// `permission.name` получено!
showToast(1)
} else if (permission.shouldShowRequestPermissionRationale) {
// Запрос разрешения отклонен без указания "никогда больше не спрашивать"
showToast(2)
} else { // Запрос разрешения отклонен с указанием "никогда больше не спрашивать"
// Необходимо перейти в настройки
showToast(3)
}
}
}

Oferta del resultado del grupo:

rxPermissions
.requestEachCombined(Manifest.permission.CAMERA,
Manifest.permission.READ_PHONE_STATE)
.subscribe(permission -> { // будет произведен 1 объект Permission
if (permission.granted) {
// Все разрешения получены!
} else if (permission.shouldShowRequestPermissionRationale)
// По меньшей мере один запрос разрешения отклонен без указания "никогда больше не спрашивать"
} else {
// По меньшей мере один запрос разрешения отклонен с указанием "никогда больше не спрашивать"
// Необходимо перейти в настройки
}
});

¡Aquí y todo! Espero que este estado se les haya mostrado en el campo.

Lea también:

Léanos en Telegrama, VK C Ендекс.Дзен

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *