您現在的位置是:首頁 > 手機遊戲首頁手機遊戲

鴻蒙(Harmony)申請所有敏感許可權

簡介PermissionArray=PermissionArrayList

允許訪問地理位置在哪裡設定

關鍵步驟及關鍵程式碼

一、新建許可權列表類並錄入以下關鍵程式碼

鴻蒙(Harmony)申請所有敏感許可權

新建許可權列表類

public class PermissionList { public Context context; public ArrayList PermissionArrayList;//敏感許可權列表 public int PermissionSize;//敏感許可權列表大小 public String[] PermissionArray;//敏感許可權陣列 public static final HiLogLabel hiLogLabel=new HiLogLabel(HiLog。LOG_APP,0x00201,“錯誤”); public PermissionList(Context ParameterContext) { super(); this。context=ParameterContext; } public void AddPermission(){ try{ PermissionArrayList=new ArrayList<>(); //允許應用在前臺執行時獲取位置資訊。如果應用在後臺執行時也要獲取位置資訊,則需要同時申請ohos。permission。LOCATION_IN_BACKGROUND許可權。 PermissionArrayList。add(SystemPermission。LOCATION); //允許應用在後臺執行時獲取位置資訊,需要同時申請ohos。permission。LOCATION許可權。 PermissionArrayList。add(SystemPermission。LOCATION_IN_BACKGROUND); PermissionArrayList。add(SystemPermission。CAMERA);//允許應用使用相機拍攝照片和錄製影片。 PermissionArrayList。add(SystemPermission。MICROPHONE);//允許應用使用麥克風進行錄音。 PermissionArrayList。add(SystemPermission。READ_CALENDAR);//允許應用讀取日曆資訊。 PermissionArrayList。add(SystemPermission。WRITE_CALENDAR);//允許應用在裝置上新增、移除或修改日曆活動。 PermissionArrayList。add(SystemPermission。ACTIVITY_MOTION);//允許應用讀取使用者當前的運動狀態。 PermissionArrayList。add(SystemPermission。READ_HEALTH_DATA);//允許應用讀取使用者的健康資料。 PermissionArrayList。add(SystemPermission。DISTRIBUTED_DATASYNC);//允許不同裝置間的資料交換。 PermissionArrayList。add(SystemPermission。DISTRIBUTED_DATA);//允許應用使用分散式資料的能力。 PermissionArrayList。add(SystemPermission。MEDIA_LOCATION);//允許應用訪問使用者媒體檔案中的地理位置資訊。 PermissionArrayList。add(SystemPermission。READ_MEDIA);//允許應用讀取使用者外部儲存中的媒體檔案資訊 PermissionArrayList。add(SystemPermission。WRITE_MEDIA);//允許應用讀寫使用者外部儲存中的媒體檔案資訊 PermissionSize=PermissionArrayList。size(); PermissionArray=PermissionArrayList。toArray(new String[PermissionSize]); }catch (Exception exception){ HiLog。error(hiLogLabel,exception。toString()); } }}

二、新建公有變數類並錄入以下關鍵程式碼

鴻蒙(Harmony)申請所有敏感許可權

新建JAVA類

public class PublicVariable { public PermissionList permissionList; public ArrayList ObjectivePermissionArrayList;//目標許可權列表 public String[] ObjectivePermissionArray;//目標許可權陣列 public int ObjectivePermissionArraySize;//目標許可權陣列大小 public ArrayList RejectPermissionList;//拒絕的許可權列表 public int RejectPermissionSize;//拒絕的許可權列表大小 public String[] RejectPermissionArray;//拒絕的許可權陣列 public PublicVariable(Context context) { super(); ObjectivePermissionArrayList=new ArrayList<>(); RejectPermissionList=new ArrayList<>(); permissionList=new PermissionList(context); }}

三、開啟Ability並錄入以下程式碼

鴻蒙(Harmony)申請所有敏感許可權

開啟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)手機模擬器執行

鴻蒙(Harmony)申請所有敏感許可權

執行效果

鴻蒙(Harmony)申請所有敏感許可權

執行效果

鴻蒙(Harmony)申請所有敏感許可權

執行效果

Top