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

歡迎訪問 生活随笔!

生活随笔

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

Android

android申请权限一次性申请多个,Android 批量申请权限

發布時間:2023/12/19 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android申请权限一次性申请多个,Android 批量申请权限 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android開發時,到6.0系統上之后,有的權限就得申請才能用了。

Android將權限分為正常權限 和 危險權限

詳細可參考: (https://www.cnblogs.com/liuzhipenglove/p/7102692.html)

網上也有很多參考例子,我這里總結下我的理解和用法

我們知道在Android6.0(SDK等級是23)以后有些權限是需要動態申請的

然后這里主要記錄下如何同時動態申請多個權限

我申請的權限有三個:READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE,CAMERA,分別是讀,寫,還有相機權限, INTERNET的話我發現靜態注冊也是可以的,當然以防萬一也可以加上.然后就是雖然是動態申請,但是還是需要在AndroidManifest.xml文件中進行靜態申請的:

然后是動態權限申請

<1>首先聲明一個數組permissions,將所有需要申請的權限都放在里面

//1、首先聲明一個數組permissions,將所有需要申請的權限都放在里面

String[] permissions = new String[]{

Manifest.permission.CAMERA,

Manifest.permission.READ_EXTERNAL_STORAGE,

Manifest.permission.WRITE_EXTERNAL_STORAGE};

<2>創建一個mPermissionList,逐個判斷哪些權限未授權,將未授權的權限存儲到mPermissionList中

// 聲明一個集合,用來存儲用戶拒絕授權的權

List mPermissionList = new ArrayList<>();

<3>聲明一個請求碼,在請求權限的回調方法onRequestPermissionsResult中需要判斷使用

//10000比較霸氣

private static final int MY_PERMISSIONS_REQUEST_CODE = 10000;

<4>進行權限判斷和申請

private void getPermissions() {

mPermissionList.clear(); //清空已經允許的沒有通過的權限

for (int i = 0; i < permissions.length; i++) { //逐個判斷是否還有未通過的權限

if (ContextCompat.checkSelfPermission(MainActivity.this, permissions[i]) != PackageManager.PERMISSION_GRANTED) {

mPermissionList.add(permissions[i]);

}

}

if (mPermissionList.size() > 0) { //有權限沒有通過,需要申請

ActivityCompat.requestPermissions(this, permissions, MY_PERMISSIONS_REQUEST_CODE);

} else {

Log.e("getPermissions() >>>", "已經授權"); //權限已經都通過了

}

}

<5>請求權限后回調的方法,在權限請求完成后做個判斷,是否完成了所有權限的申請,

@Override

public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

boolean hasPermissionDismiss = false; //有權限沒有通過

if (MY_PERMISSIONS_REQUEST_CODE == requestCode) {

for (int i = 0; i < grantResults.length; i++) {

if (grantResults[i] == -1) {

hasPermissionDismiss = true; //發現有未通過權限

break;

}

}

}

if (hasPermissionDismiss) { //如果有沒有被允許的權限

//假如存在有沒被允許的權限,可提示用戶手動設置 或者不讓用戶繼續操作

} else {

Log.e("onRequestPermissionsResult >>>", "已全部授權");

}

}

還有記錄一個坑

image.png

如果你的gradle文件中

targetSdkVersion 參數設置成了21的話 等于是用6.0以前的版本運行,這樣的話有可能導致無法動態申請權限,這點需要特別注意下

如若有補充,留言區留下你的寶貴意見,謝謝!!!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的android申请权限一次性申请多个,Android 批量申请权限的全部內容,希望文章能夠幫你解決所遇到的問題。

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