您現在的位置是:首頁 > 手機遊戲首頁手機遊戲
鴻蒙(Harmony)申請所有敏感許可權
- 2022-08-21
允許訪問地理位置在哪裡設定
關鍵步驟及關鍵程式碼
一、新建許可權列表類並錄入以下關鍵程式碼
新建許可權列表類
public class PermissionList { public Context context; public ArrayList
二、新建公有變數類並錄入以下關鍵程式碼
新建JAVA類
public class PublicVariable { public PermissionList permissionList; public ArrayList
三、開啟Ability並錄入以下程式碼
開啟MainAbility
public class MainAbility extends Ability { public static final HiLogLabel hiLogLabel=new HiLogLabel(HiLog。LOG_APP,0x00201,“錯誤”); PublicVariable publicVariable =new PublicVariable(this); @Override public void onStart(Intent intent) { super。onStart(intent); super。setMainRoute(MainAbilitySlice。class。getName()); publicVariable。permissionList。AddPermission(); this。AddObjectivePermissionArrayList(); if (publicVariable。ObjectivePermissionArrayList。isEmpty()){ //已經被授予全部敏感許可權 }else { this。RequestSystemPermission(); } } public void AddObjectivePermissionArrayList(){ for (int i = 0; i< publicVariable。permissionList。PermissionArray。length; i++){ try { //verifySelfPermission:查詢自身程序是否已被授予某許可權 //IBundleManager:獲取與應用程式捆綁包有關的資訊 //PERMISSION_GRANTED:表示已嚮應用程式授予特定許可權 if (this。verifySelfPermission(publicVariable。permissionList。PermissionArray[i])!= IBundleManager。PERMISSION_GRANTED){ publicVariable。ObjectivePermissionArrayList。add(publicVariable。permissionList。PermissionArray[i]); }else { //已經被授予該敏感許可權 } }catch (Exception exception){ HiLog。error(hiLogLabel,exception。toString()); } } publicVariable。ObjectivePermissionArraySize= publicVariable。ObjectivePermissionArrayList。size(); publicVariable。ObjectivePermissionArray= publicVariable。ObjectivePermissionArrayList。toArray(new String[publicVariable。ObjectivePermissionArraySize]); } public void RequestSystemPermission(){ for (int i = 0; i< publicVariable。ObjectivePermissionArray。length; i++){ //canRequestPermission:向系統許可權管理模組查詢某許可權是否不再彈框授權了 if (this。canRequestPermission(publicVariable。ObjectivePermissionArray[i])){ this。requestPermissionsFromUser(publicVariable。ObjectivePermissionArray,101); }else { //顯示應用需要許可權的理由,提示使用者進入設定授權 publicVariable。RejectPermissionList。add(publicVariable。ObjectivePermissionArray[i]); } } publicVariable。RejectPermissionSize= publicVariable。RejectPermissionList。size(); publicVariable。RejectPermissionArray= publicVariable。RejectPermissionList。toArray(new String[publicVariable。RejectPermissionSize]); for (int i = 0; i< publicVariable。RejectPermissionArray。length; i++){ //以下許可權被禁止,APP使用將受限,請到手機設定介面進行授權。 } } @Override //onRequestPermissionsFromUserResult:呼叫requestPermissionsFromUser後的應答介面 //requestCode:requestPermission中傳入的requestCode //permissions:申請的許可權名 //grantResults:申請許可權的結果 public void onRequestPermissionsFromUserResult(int requestCode, String[] permissions, int[] grantResults) { //匹配requestPermissions的requestCode if (requestCode==101){ for (int i=0; i 四、開啟鴻蒙(Harmony)手機模擬器執行 執行效果 執行效果 執行效果