Android权限申请Kotlin版本
有关权限申请的我就不多做介绍了,这里我们实现一个功能
1,当访问隐私功能时 申请权限
2,用户点击了拒绝,下次再进来的时候弹出友善的对话框
3,用户点击确定,呈现申请权限对话框
4,用户点击了同意申请的对话框,申请权限
5,申请成功了调用相关方法
override fun initData() {
//这里我们需要查询手机内的数据,访问内存信息
handlePermission()
}
//动态申请权限
private fun handlePermission(){
val permission = Manifest.permission.READ_EXTERNAL_STORAGE //这个是需要申请的权限信息
val checkPermission = context?.let{ActivityCompat.checkSelfPermission(it,permission)}
if(checkpermission == PackageManager.PERMISSION_GRANT){
//执行到这里说明用户已经申请了权限直接加载数据就可以
loadData()
}else{
//执行到这里说明没有权限了
if(activity?.let{
ActivityCompat.shouldShowRequestPermissionRationable(it,permission)
}!!){
//用户第一次拒绝后,可能没有看懂提示,第二次的时候就会执行到这里以友善的方式提示用户
alter("我们只会访问音乐文件"){
yesButton{
myRequestPermission()
}
noButton()
}.show()
}else{
//第一次提示 会以系统默认的弹框提示用户
myReqyestPermission()
}
}
private fun myRequestPermission(){
val permission = arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE)
//这是系统的方法
requestPermission(permission,0)
}
//接收权限的回调,也就是用户点击了确定后 加载数据
override fun onRequestPermissionResult(requestCode:Int, permission:Array<out String>,grantResult IntArray){
super.onRequestPermissionResult(requestCode, permission, grantResults)
if(grantRequest[0]==PackageManager.PERMISSION_GRANT){
loadData()
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)