//声明全局变量
val REQUEST_CODE_PERMISSION = 0x01
/**
* 请求Storage权限
*/
private fun requestStoragePermissions() {
val permissions = arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE)
// 检查读写权限
val permissionCheck = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
if (permissionCheck == PackageManager.PERMISSION_GRANTED)//已经具备该权限
{
//TODO 写自己的代码
} else if (permissionCheck == PackageManager.PERMISSION_DENIED) {//不具备该权限,需要向用户申请该权限
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE))//当用户此前曾拒绝过该权限,则需要给出请求该权限的说明。当用户没有勾选下次不提示,则返回true,不然返回false
{
ActivityCompat.requestPermissions(this, permissions, REQUEST_CODE_PERMISSION)
} else {//如果用户此前没有拒绝过,首次调用时,则无需提示,直接请求权限。当用户此前拒绝过并且勾选下次不提示,也会返回false。
ActivityCompat.requestPermissions(this, permissions, REQUEST_CODE_PERMISSION)
}
}
}
/**
* 权限请求返回结果处理
*/
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == REQUEST_CODE_PERMISSION) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED)//第0个权限请求成功
{
Toast.makeText(this, "权限请求成功", Toast.LENGTH_SHORT).show()
//TODO 写自己的代码
} else {//权限被手动拒绝
Toast.makeText(this, "权限请求失败,应用需要储存卡写入权限,请在设置界面打开", Toast.LENGTH_SHORT).show()
}
}
}
Android 6.0权限 Kotlin代码
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Android6.0以后 Google 使用了新的Permission管理逻辑 当targetSdkVersion...
- 转载请注明出处,感谢您的支持。同时,欢迎加入移动开发学习交流qq群 : 450302004,互相学习。文章来源:【...
- 孕晚期,懒懒的不想动,什么都不想做的时候,终于把拖拖拉拉收到半年的书读完了。 也许是因为沾染了小雪对甜品的诚意,对...