日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限

發布時間:2025/3/11 Android 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接:http://blog.csdn.net/android_hdh/article/details/52583557

-------------------------------

最近在開發項目時,項目需要獲取系統的WRITE_EXTERNAL_STORAGE權限,然后就在清單文件AndroidManifest中添加了該權限,但是在系統運行后發現并沒有創建該有的文件,然后查看了一下日志發現系統提示沒有獲得權限,之后在網上搜索了下發現Android6.0之后需要動態獲取這種權限,然后改了一下果真可以了,下面把動態獲取權限的過程講解一下,以備將來查看和幫助哪些遇到同樣問題的人。

下面貼出請求動態獲取權限的代碼

自己定義的請求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();??
  • ????????}??

  • 當觸發了獲取該權限的操作時會彈出一個提示框,會詢問你是否允許添加該種權限,具體如下圖

    然而,我們如何知道用戶是點了什么呢?這里我們需要重寫一下事件onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResults){}

    通過該事件來回調監聽用戶的操作

    [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] 的結果有兩種一種是授權,一種是阻止,當授權時就執行你的相應操作,否則就關閉程序。

    好了關于動態獲取權限的流程就是這些,如果你覺得有用就頂一個吧,哈哈


    總結

    以上是生活随笔為你收集整理的Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。