当前位置: 首页 > news >正文

Android Kotlin请求权限及权限回调处理

class MainActivity : AppCompatActivity()  {// 请求权限的标识private val REQUEST_PERMISSIONS_CODE = 100// 需请求的权限private val REQUIRED_PERMISSIONS = arrayOf(Manifest.permission.INTERNET,Manifest.permission.WRITE_EXTERNAL_STORAGE)// 检查权限private fun allPermissionsGranted(): Boolean {// 检查权限是否已授权val internetGranted = ContextCompat.checkSelfPermission(baseContext, Manifest.permission.INTERNET) == PackageManager.PERMISSION_GRANTED// 仅在特定版本检查授权,否则按已授权处理val storageGranted = if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {ContextCompat.checkSelfPermission(baseContext, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED} else {true}return internetGranted && storageGranted}// 授权结果处理override fun onRequestPermissionsResult(requestCode: Int,permissions: Array<out String>,grantResults: IntArray) {super.onRequestPermissionsResult(requestCode, permissions, grantResults)// 仅处理有对应权限标识的逻辑if (requestCode == REQUEST_PERMISSIONS_CODE) {// 再次检查是否所有权限已授权if (allPermissionsGranted()) {doSomething()} else {Toast.makeText(this, "权限被拒绝,应用无法正常工作", Toast.LENGTH_LONG).show()finish()}}}public override fun onStart() {super.onStart()// 检查是否所有权限已授权if (allPermissionsGranted()) {doSomething()} else {// 存在未授权的权限时请求获取权限ActivityCompat.requestPermissions(this, REQUIRED_PERMISSIONS, REQUEST_PERMISSIONS_CODE)}}
}
http://www.wxhsa.cn/company.asp?id=805

相关文章:

  • 版本发布| IvorySQL 4.6 发布
  • Avalonia Calendar 日历控件遇到 Flyout 或者切换页面时出现的鼠标按下失效的解决方法
  • cache和主存的映射方式
  • Vue 2 + Element UI 技术栈的管理端项目和Git使用教程
  • 你好
  • 2025年图像、信号处理与机器学习国际学术会议(ISPML 2025)
  • 利用Ampere Altra与SpinKube实现可扩展工作流的突破性实践
  • 有向距离场SDF,在游戏中如何实现agent导航以及绕障
  • ubuntu22.04.5系统重启后网络配置消失问题
  • 第十届计算机技术与机械电气工程国际学术论坛(ISCME 2025)暨2025年泰山学术论坛-鲁东大学微纳传感器及系统专题论坛
  • SLB和NAT网关的作用
  • 基于Python+Vue开发的音乐推荐管理系统源码+运行
  • linux 系统下iperf 测试网卡性能优化步骤
  • FinRL(2)China_A_share_market_tushare.ipynb
  • 应急响应:某网站被挂非法链接
  • 笔记-每天进步一点
  • 用惯了VO,什么时候需要DTO?
  • 剑指offer-29、最⼩的k个数
  • 【初赛】时间复杂度 - Slayer
  • 微调
  • WPF 警惕 StylusPlugIn 的多线程安全问题
  • 【译】Visual Studio 八月更新已发布 —— 更智能的人工智能、更出色的调试功能以及更多控制权
  • RAG or 微调
  • 什么是AI CRM(人工智能客户关系管理)
  • 完整教程:WPF WriteableBitmap 高性能双缓冲图片显示方案
  • PHP 性能优化实战 OPcache + FPM 极限优化配置
  • 多校 3 - 1001. 求和
  • cache的基本原理
  • 【办公自动化】如何使用Python脚本自动化处理音频?
  • 如何用 vxe-table 实现2个树表格可以互相拖拽数据