android网络动态获取权限,基于JetPack实现的权限动态获取
最近在学习如何使用Jetpack以及kotlin,相较于以往使用的onActivityResult,androidx-activity 1.2.0-alpha02及Fragment 1.3.0-alpha02版本中新追加了api ActivityResultContract
环境配置
为使用ActivityResultContract,我们需要在gradle文件中添加相关依赖,这里我使用的是alpha03版本
implementation "androidx.activity:activity-ktx:1.2.0-alpha03"
implementation 'androidx.fragment:fragment-ktx:1.3.0-alpha03'
复制代码
使用方法
ActivityResultContract和Fragment可以通过registerForActivityResult()函数创建launcher,接着通过调用launcher.launch(intent)进行使用
由于版本或其他不可抗力,我在使用过程中发现registerForActivityResult()不可使用,查阅资料发现,registerForActivityResult()是prepareCall()的重命名,于是只能暂时使用prepareCall()
读取图片
设置launcher
private val launcher = prepareCall(ActivityResultContracts.GetContent()) { uri ->
Toast.makeText(context,"uri:$uri",Toast.LENGTH_SHORT).show()
}
复制代码
launcher调用launch
launcher.launch("image/*")
复制代码
权限获取(RequestPermission)
前提
如需动态获取对应权限,应当在AndroidManifest下对应填写相应语句,如WRITE_EXTERNAL_STORAGE
复制代码
设置launcher
val requestPermissionLauncher =
prepareCall(
ActivityResultContracts.RequestPermission()
) { isGranted: Boolean ->
if (isGranted) {
Toast.makeText(context, "result: granted", Toast.LENGTH_LONG).show()
} else {
Toast.makeText(context, "result:fail", Toast.LENGTH_LONG).show()
}
}
复制代码
launcher调用launch
requestPermissionLauncher.launch(WRITE_EXTERNAL_STORAGE)
复制代码
总结
老菜鸡了,看个jetpack的权限调用看了一个下午,写个文章记录一下踩过的坑吧,确实使用jetpack会让代码整洁许多,好东西好东西,继续加油
关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[基于JetPack实现的权限动态获取]http://www.zyiz.net/tech/detail-145260.html
android网络动态获取权限,基于JetPack实现的权限动态获取相关推荐
- android 网络wifi定位服务器,基于位置指纹算法的Android平台WiFi定位系统
近年来,随着城域无线基础网络的发展,热点(AP)的覆盖范围已大大增加. 由于对定位服务的需求增加以及WiFi应用的扩展,WiFi定位已成为一种有效的定位方法. GPS卫星定位是最重要的定位方法. 它需 ...
- c语言动态扫描原理,基于视觉暂留的动态扫描LED旋转屏
2.3 红外解码 红外遥控器与电器之间的通信存在一个通信协议,一般是单向的通信协议.这个单向的通信协议称为红外遥控编码协议.本文使用NEC红外编码协议,当发射器按键按下后,即有遥控码发出,所按的键不同 ...
- Android 获取Wifi列表详解(包含动态权限申请)
WLAN 扫描流程 扫描流程分为三步: 为 SCAN_RESULTS_AVAILABLE_ACTION 注册一个广播监听器,系统会在完成扫描请求时调用此监听器,提供其成功/失败状态.对于搭载 Andr ...
- Ant Design Pro v5 获取动态菜单与基于角色权限管理视频教程(33 个视频)
Ant Design Pro v5 获取动态菜单与基于角色权限管理视频教程(33 个视频) 很多人问如何获取动态菜单的,所以在 antd prov 5 来讲一下角色管理的.从最基础的用户管理,角色管理 ...
- android悬浮动态权限,Android 获取判断是否有悬浮窗权限的方法
现在很多应用都会用到悬浮窗,很多国产rom把悬浮窗权限加入控制了,你就需要判断是否有悬浮窗权限,然后做对应操作. Android 原生有自带权限管理的,只是被隐藏了.看android源码在androi ...
- android mvvm框架搭建_轻松搭建基于JetPack组件的MVVM框架
原文链接:轻松搭建基于JetPack组件的MVVM框架 - 掘金 Brick github gitee 介绍 辅助android开发者搭建基于JetPack组件构建MVVM框架的注解处理框架.通过注解 ...
- Android 网络请求、网络状态及各种权限判断
一.判断网络连接是否可用 public static boolean isNetworkAvailable(Context context) { ConnectivityManager cm = (C ...
- 基于Http协议的Android网络编程
之前写过一篇Android网络编程<浅谈android网络编程>,随着了解了更多Android知识,我意识到HttpClient已经不推荐使用了,更是在Android 6.0中被废弃了,原 ...
- 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介
Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...
最新文章
- linux 安装 nodejs
- loader调用过程
- 倾向得分匹配的stata命令_计量方法的适用条件汇总(二):倾向得分匹配
- 各种环境下的渗透测试
- Android安全问题 抢先开机启动
- NEW RToax logo
- 7 大版块 | 全面解读与认知支付系统
- 基于Python从头开始使用 RMSProp 进行梯度下降
- 优班图linux 命令,Linux 常用命令
- mysql卸载删除注册表
- 在linux上使用spi-lcd屏 ST7735
- 逐行解析linux kernel NIC驱动
- 5操作系统的运行机制和体系结构
- [网络流24题] 06 最长递增子序列(最多不相交路径,最大流)
- br-lan、eth0、eth1及lo
- 智能优化算法(源码)-食肉植物算法(Carnivorous Plant Algorithm ,CPA)
- Ubuntu开发环境_TLP电源管理模块、禁用笔记本触摸板
- Oracle数据库打补丁方法
- 程序员应该如何应对35岁中年危机?
- 华为服务器系统修复,服务器操作系统修复工具