生活随笔
收集整理的這篇文章主要介紹了
Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
原文鏈接:http://blog.csdn.net/android_hdh/article/details/52583557
-------------------------------
最近在開發(fā)項目時,項目需要獲取系統(tǒng)的WRITE_EXTERNAL_STORAGE權限,然后就在清單文件AndroidManifest中添加了該權限,但是在系統(tǒng)運行后發(fā)現(xiàn)并沒有創(chuàng)建該有的文件,然后查看了一下日志發(fā)現(xiàn)系統(tǒng)提示沒有獲得權限,之后在網(wǎng)上搜索了下發(fā)現(xiàn)Android6.0之后需要動態(tài)獲取這種權限,然后改了一下果真可以了,下面把動態(tài)獲取權限的過程講解一下,以備將來查看和幫助哪些遇到同樣問題的人。
下面貼出請求動態(tài)獲取權限的代碼
自己定義的請求Code
[java]?view plaincopy print?
private?final?static?int?REQUEST_CODE_ASK_WRITE_EXTERNAL_STORAGE=0x123;??
[java]?view plaincopy print?
if(Build.VERSION.SDK_INT?>=?23){?? ????????????int?checkWriteStoragePermission?=?ContextCompat.checkSelfPermission(this,?Manifest.permission.WRITE_EXTERNAL_STORAGE);?? ????????????if(checkWriteStoragePermission?!=?PackageManager.PERMISSION_GRANTED){?? ????????????????ActivityCompat.requestPermissions(this,new?String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},REQUEST_CODE_ASK_WRITE_EXTERNAL_STORAGE);?? ????????????????return;?? ????????????}else{?? ????????????????initEvent();?? ????????????}?? ????????}else?{?? ????????????initEvent();?? ????????}??
當觸發(fā)了獲取該權限的操作時會彈出一個提示框,會詢問你是否允許添加該種權限,具體如下圖
然而,我們?nèi)绾沃烙脩羰屈c了什么呢?這里我們需要重寫一下事件onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResults){}
通過該事件來回調(diào)監(jiān)聽用戶的操作
[java]?view plaincopy print?
@Override?? ???public?void?onRequestPermissionsResult(int?requestCode,?String[]?permissions,?int[]?grantResults)?{?? ???????switch?(requestCode){?? ???????????case?REQUEST_CODE_ASK_WRITE_EXTERNAL_STORAGE:?? ???????????????if(grantResults[0]?==?PackageManager.PERMISSION_GRANTED){?? ???????????????????initEvent();?? ???????????????}else{?? ???????????????????finish();?? ???????????????}?? ???????????????break;?? ???????????default:?? ???????????????super.onRequestPermissionsResult(requestCode,?permissions,?grantResults);?? ???????}?? ???}??
這里grantResults[0] 的結果有兩種一種是授權,一種是阻止,當授權時就執(zhí)行你的相應操作,否則就關閉程序。
好了關于動態(tài)獲取權限的流程就是這些,如果你覺得有用就頂一個吧,哈哈
總結
以上是生活随笔為你收集整理的Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。