android运行时权限怎么改_Kotlin DSL的运行时权限

680d42a037f59cecdc804a3f9e1d4c7b.png

前一段时间,我eazypermissions为运行时权限开源了一个Android库,该库允许您在协程中请求权限(没有回调yay),并且还支持LiveData。如果您有兴趣,可以阅读更多内容

eazy permissions 运行时权限库简介。

proandroiddev.com

该库现在提供了Kotlin DSL来请求权限。在本文中,我们将讨论DSL API以及如何使用DSL请求权限。让我们开始吧。

Kotlin DSL请求权限

请求权限时,重要的三件事是权限,请求代码和结果。DSL API专注于这三件事,并允许您简洁明了地请求权限。让我们看看如何。

如果要在“Activity/Fragment”中请求权限,则可以请求权限,如下所示。

4650da1fff48990b8f3470fe30344c80.png

现在让我们了解上面的DSL。

该requestPermissions函数是Activity和Fragment的扩展函数,因此您可以直接从activity和fragment调用它。它需要vararg您要请求的许可权,并在接收器上启用lambda PermissionRequest。由于它是带有接收器的lambda,因此PermissionRequest您可以直接访问的成员PermissionRequest。在拉姆达,初始化的两个成员PermissionRequest,requestCode和resultCallback。

这是PermissionRequest类的定义。

d8c13396421f8af68a143e30eaecef5a.png

resultCallback带有接收器的lambda,PermissionResult并且库将调用此回调以获得结果。在lambda中,您可以直接将权限结果称为this。PermissionResult只是封装所有可能结果的简单密封类,即授予,拒绝,永久拒绝和显示理性的权限。

这是requestPermissionsActivity和Fragment上扩展功能的签名。

435c418af0d09e62e18130850cc2f8b6.png

如果您在“Fragment/Activity”之外请求权限,则可以请求权限,如下所示。

78b253fc05ac2174854e2f376db438ac.png

唯一的区别是您需要调用PermissionManager.requestPermissionsFragment / Activity实例作为附加参数。我们之前看到的扩展函数在内部将调用委托给该函数。

这是PermissionManager.requestPermissions功能的签名。

ea19b19bf6fe88f1c09bc5a890a561c4.png

您如何在项目中包含库。

implementation 'com.sagar:dslpermission:2.0.0'

这就是Kotlin DSL新功能的全部内容。请转到下面的GitHub存储库,以获取有关该库的更多详细信息。

一个轻量级的Android库,它包装了运行时权限的样板代码,并允许您请求权限…

github.com

https://github.com/sagar-viradiya/eazypermissions?source=post_page-----ba04dbe0de2c----------------------

翻译自:https://android.jlelse.eu/kotlin-dsl-for-runtime-permissions-ba04dbe0de2c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值