在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

高質量 HarmonyOS 權限管控流程

萬少 ? 來源:jf_22972444 ? 作者:jf_22972444 ? 2025-04-02 18:29 ? 次閱讀

高質量 HarmonyOS 權限管控流程

HarmonyOS 應用開發過程中,往往會涉及到敏感數據硬件資源的調動和訪問,而這部分的調用就會涉及到管控這部分的知識和內容了。我們需要對它有所了解,才可以在應用開發中提高效率和避免踩坑。

權限管控了什么

權限管控,主要是管控 數據功能

  • 數據包括個人數據(如照片、通訊錄、日歷、位置等)、設備數據(如設備標識、相機、麥克風等)。
  • 功能包括設備功能(如訪問攝像頭/麥克風、打電話、聯網等)、應用功能(如彈出懸浮窗、創建快捷方式等)。

權限組和子權限

我們先看什么是子權限。比如對于媒體相冊的功能操作來說。讀取相冊內容是一種權限、寫入內容到相冊是一種權限。 那么它們屬于媒體相冊這個大權限中的子權限。那么我們的應用在申請媒體相冊的讀寫權限時,考慮到用戶的體驗。其實是會把兩個權限合并為一個彈出窗口,詢問用戶授予權限。如果用戶允許了,那么就等于獲得了媒體相冊的讀寫權限了。總結就是

  • 讀取媒體相冊是子權限、寫入媒體相冊是子權限
  • 它們合起來就是一個權限組。

image-20240608002954074

權限組和子權限一覽

鏈接

位置信息;
ohos.permission.LOCATION_IN_BACKGROUND;

ohos.permission.LOCATION;

ohos.permission.APPROXIMATELY_LOCATION;

相機;
ohos.permission.CAMERA;
麥克風;
ohos.permission.MICROPHONE;
通訊錄;
ohos.permission.READ_CONTACTS;

ohos.permission.WRITE_CONTACTS;

日歷;
ohos.permission.READ_CALENDAR;

ohos.permission.WRITE_CALENDAR;

ohos.permission.READ_WHOLE_CALENDAR;

ohos.permission.WRITE_WHOLE_CALENDAR;

健身運動;
ohos.permission.ACTIVITY_MOTION;
身體傳感器;
ohos.permission.READ_HEALTH_DATA;
圖片和視頻;
ohos.permission.WRITE_IMAGEVIDEO;

ohos.permission.READ_IMAGEVIDEO;

ohos.permission.MEDIA_LOCATION;

音樂和音頻;
ohos.permission.WRITE_AUDIO;

ohos.permission.READ_AUDIO;

文件;
ohos.permission.READ_DOCUMENT;

ohos.permission.WRITE_DOCUMENT;

ohos.permission.READ_MEDIA;

ohos.permission.WRITE_MEDIA;

廣告跟蹤;
ohos.permission.APP_TRACKING_CONSENT;
讀取已安裝應用列表;
ohos.permission.GET_INSTALLED_BUNDLE_LIST;
多設備協同;
ohos.permission.DISTRIBUTED_DATASYNC;
藍牙;
ohos.permission.ACCESS_BLUETOOTH;
電話;
ohos.permission.ANSWER_CALL;

ohos.permission.MANAGE_VOICEMAIL;

通話記錄;
ohos.permission.READ_CALL_LOG;

ohos.permission.WRITE_CALL_LOG;

信息;
ohos.permission.READ_CELL_MESSAGES;

ohos.permission.READ_MESSAGES;

ohos.permission.RECEIVE_MMS;

ohos.permission.RECEIVE_SMS;

ohos.permission.RECEIVE_WAP_MESSAGES;

ohos.permission.SEND_MESSAGES;

剪切板;
ohos.permission.READ_PASTEBOARD;
文件夾;
ohos.permission.READ_WRITE_DOWNLOAD_DIRECTORY;

ohos.permission.READ_WRITE_DESKTOP_DIRECTORY;

ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY;

APL 等級

APL(Ability Privilege Level,元能力權限等級)等級,分為兩類。一類是 應用 APL 等級 、另一類是 權限 APL 等級 。說人話就是 不管官階的士官和其對應的權限之間的關系。

應用 APL 等級

應用 APL 等級分為三級:

APL 級別說明
normal默認情況下,應用的 APL 等級都為 normal 等級。
system_basic該等級的應用服務提供系統基礎服務。
system_core該等級的應用服務提供操作系統核心能力。 應用 APL 等級不允許配置為 system_core。

權限 APL 等級

權限 APL 等級也分為三級:

APL 級別說明開放范圍
normal允許應用訪問超出默認規則外的普通系統資源,如配置 Wi-Fi 信息、調用相機拍攝等。 這些系統資源的開放(包括數據和功能)對用戶隱私以及其他應用帶來的風險低。APL 等級為 normal 及以上的應用。
system_basic允許應用訪問操作系統基礎服務(系統提供或者預置的基礎功能)相關的資源,如系統設置、身份認證等。 這些系統資源的開放對用戶隱私以及其他應用帶來的風險較高。APL 等級為 system_basic 及以上的應用。
system_core涉及開放操作系統核心資源的訪問操作。這部分系統資源是系統最核心的底層服務,如果遭受破壞,操作系統將無法正常運行。- APL 等級為 system_core 的應用。 - 僅對系統應用開放。

訪問控制列表(ACL)

權限等級和應用 APL 等級是一一對應的。原則上,擁有低 APL 等級的應用默認無法申請更高等級的權限。訪問控制列表 ACL(Access Control List)提供了解決低等級應用訪問高等級權限問題的特殊渠道。我們可以將 ACL 理解為讓普通的老百姓也具有某種士官的能力,如調兵遣將

需要注意的是,并不是所有的權限都能通過申請 ACL 來實現跨等級的應用來獲得。具體哪些權限可以被跨等級申請使用。HarmonyOS中也有明確標識的。如: 鏈接

image-20240608004247416

授權方式

不管是什么的方式申請權限,最后在用戶的體驗上一共分為兩種。 system_grant(系統授權) 和 user_grant(用戶授權)

  1. system_grant(系統授權)

    • 應用被允許訪問的數據不會涉及到用戶或設備的敏感信息
    • 需要在安裝包中申請 system_grant 權限,那么系統會在用戶安裝應用時, 自動把相應權限授予給應用
  2. user_grant(用戶授權)

    • 會彈出窗口詢問用戶的意見 -應用被允許訪問的數據將會涉及到用戶或設備的敏感信息
    • 需要注意的是,如果用戶增加拒絕過授權,那么只能通過引導用戶到系統設置頁面來手動打開權限

    image-20240608004726930

申請應用權限流程

一圖勝萬言

總流程圖

image-20240608004827845


normal 等級的應用申請權限

image-20240608005114527

system_basic 等級的應用申請權限

image-20240608005144778

申請應用權限操作步驟

1.聲明權限-必須

  1. main/module.json5 中 配置 requestPermissions 字段聲明權限
  2. 配置內容
    image-20240608005334602

2.聲明 ACL 權限-非必須

參考鏈接

image-20240608005438191

3.向用戶申請授權-非必須

如果你申請的權限類型是 system_grant(系統授權) ,那么可以跳過這個步驟。如果你申請的權限類型是 user_grant(用戶授權) ,那么需要主動申請權限,此時用戶會彈出對話框。如

import abilityAccessCtrl, {
  Context,
  PermissionRequestResult,
} from "@ohos.abilityAccessCtrl";
import { BusinessError } from "@ohos.base";
import common from "@ohos.app.ability.common";

let atManager: abilityAccessCtrl.AtManager =
  abilityAccessCtrl.createAtManager();
let context: Context = getContext(this) as common.UIAbilityContext;
// 申請攝像頭權限
atManager
  .requestPermissionsFromUser(context, ["ohos.permission.CAMERA"])
  .then((data: PermissionRequestResult) = > {
    console.info("data:" + JSON.stringify(data));
    console.info("data permissions:" + data.permissions);
    console.info("data authResults:" + data.authResults);
  })
  .catch((err: BusinessError) = > {
    console.info("data:" + JSON.stringify(err));
  });

此圖只做演示,不和上述代碼具體效果一一對應

image-20240608002954074

4.訪問接口-必須

此時,就可以直接調用相關接口,實現業務功能

5. 當用戶拒絕時,二次申請權限

針對以上彈窗,如果用戶點擊了 禁止 ,我們可以再次彈窗詢問用戶,如 “不授予權則無法繼續使用功能”,“禁止”,“允許”。

此時,如果用戶點擊了允許

  1. 使用 requestPermissionOnSetting 在應用內直接彈窗 請求授權
  2. 使用 startAbility 跳轉到系統權限設置頁面,重新授權權限`
    let want: Want = {
      bundleName: "com.huawei.hmos.settings",
      abilityName: "com.huawei.hmos.settings.MainAbility",
      uri: "application_info_entry",
    };
    const ctx = getContext(this) as common.UIAbilityContext;
    ctx.startAbility(want);
    

附上述流程思維導圖

image-20240608010002233


image-20240608010016337

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HarmonyOS
    +關注

    關注

    79

    文章

    2005

    瀏覽量

    31773
收藏 人收藏

    評論

    相關推薦

    protel輸出高質量gerber

    圖文并茂一步一步手把手教你輸出高質量的gerber傻瓜式教學。。。。[hide] [/hide]
    發表于 12-12 15:43

    高質量C編程指南—林銳

    高質量C編程指南—林銳
    發表于 08-03 08:44

    高質量C++、C編程指南

    高質量C++、C編程指南
    發表于 08-06 11:58

    高質量C&C++

    高質量C&C++
    發表于 08-16 19:45

    高質量C++&C 編程指南

    高質量C++&C 編程指南
    發表于 08-19 23:37

    原版PIC實戰項目-C(高質量PDF版本)

    英文原版,高質量保證。
    發表于 07-10 21:42

    高質量C語言編程

    高質量c語言,精,精,精,精華
    發表于 07-22 13:48

    編寫高質量C語言代碼

    編寫高質量C語言代碼 編寫高質量C語言代碼 編寫高質量C語言代碼
    發表于 07-31 17:47

    林銳《高質量C語言編程》

    林銳《高質量C語言編程》
    發表于 08-17 12:10

    高質量C++與C編程指南

    高質量C++與C編程指南
    發表于 03-09 10:54

    高質量編程

    干貨,《495個C語言問題》、《華為內部程序設計編碼規范》、《C語言:陷阱和缺陷》、《高質量C編程[林銳]》
    發表于 02-27 19:39

    圖書推薦:高質量C++編程指南

    高質量C++編程指南
    發表于 06-12 13:49

    【下載】高質量干貨-22本高質量EMC電磁兼容性設計資料

    22本高質量EMC電磁兼容性設計資料請君自取總體太大壓縮成兩個壓縮包。希望這些內容能對大家在設計上有所幫助!
    發表于 03-20 00:02

    請問怎么才能設計出高質量的印制線路板?

    怎么才能設計出高質量的印制線路板?
    發表于 04-23 06:57

    如何用B&R寫出高質量的程序

    B&R的特征包括哪些?B&R的命名規則是什么?如何用B&R寫出高質量的程序?
    發表于 09-29 09:17
    主站蜘蛛池模板: 色婷婷综合和线在线 | www.好吊色| 思思久99久女女精品 | 加勒比一本一道在线 | 超h 高h 污肉1v1御书屋 | 久久久综合视频 | 久操伊人| 天堂资源在线播放 | 亚洲性色成人 | 中文字幕一区二区三区精品 | 天堂网在线www资源在线 | 天天操天天射天天插 | 日本一级高清不卡视频在线 | 日本一区视频在线观看 | 1000部啪啪未满十八勿入 | 人操人爱| 亚洲国内精品自在线影视 | 久久久免费 | 一区二区高清在线 | 第一福利在线 | 国产拍拍视频 | 成人欧美一区二区三区 | 久久精品国产99国产精品澳门 | 久久精品国产亚洲5555 | 日日干夜夜骑 | 啪啪午夜免费 | 全色网站 | a爱视频 | 欧美xxx69| 男男污肉高h坐便器调教 | 五月婷婷在线观看视频 | 奇米影视7777久久精品 | 四虎在线影院 | 久草视频在线免费看 | 亚洲国产欧美精品一区二区三区 | 特黄aaaaa日本大片免费看 | 女性一级全黄生活片在线播放 | 男人的午夜影院 | 久插视频| 黄色国产在线观看 | 亚洲成a人一区二区三区 |