Android在聲明權限時是在AndroidManifest.xml文件中使用<uses-permissions>標簽來聲明權限的,Android運行時權限的功能是用戶不需要在安裝軟件的時候一次性授權所有的申請,而是可以在軟件的使用過程中對某項申請進行授權。
Android權限分為兩類:普通權限和危險權限
- 普通權限:不會直接危險到用戶的安全和隱私的權限,系統(tǒng)會自動幫我們進行授權,不需要用戶手動授權了
- 危險權限:可能會觸及到用戶隱私以及對設備的安全性造成影響的權限,必須用戶手動授權,否則程序相應的功能就無法使用。

危險權限表
表格中的每個危險權限都屬于一個權限組,我們在進行授權的時候使用的是權限名,一旦我們同意授權了,那么該權限的權限組中的所有權限也會同時被授權。
運行時授權核心就是在程序運行過程中,由用戶授權我們去執(zhí)行某些危險操作。
- 首先我們要判斷用戶是否已經授權
if(ContextCompat.checkSelfPermission(Context,具體的權限名)!=PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(activity實例,申請的權限名數組(String類型的),請求碼); //向用戶申請授權
}else{
//已經授權后執(zhí)行相應的邏輯
}
- 上面調用完requestPermissions()方法后,系統(tǒng)會彈出一個申請權限的對話框,無論選擇哪種結果,最終都會回調到onRequestPermissionsResult()方法中,授權結果在grantResults參數中
@Override
public void onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResult){
switch(requestCode){
//授權請求碼中對應的授權結果處理
}
}