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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

高質(zhì)量 HarmonyOS 權(quán)限管控流程

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

高質(zhì)量 HarmonyOS 權(quán)限管控流程

HarmonyOS 應(yīng)用開發(fā)過程中,往往會(huì)涉及到敏感數(shù)據(jù)硬件資源的調(diào)動(dòng)和訪問,而這部分的調(diào)用就會(huì)涉及到管控這部分的知識(shí)和內(nèi)容了。我們需要對(duì)它有所了解,才可以在應(yīng)用開發(fā)中提高效率和避免踩坑。

權(quán)限管控了什么

權(quán)限管控,主要是管控 數(shù)據(jù)功能

  • 數(shù)據(jù)包括個(gè)人數(shù)據(jù)(如照片、通訊錄、日歷、位置等)、設(shè)備數(shù)據(jù)(如設(shè)備標(biāo)識(shí)、相機(jī)、麥克風(fēng)等)。
  • 功能包括設(shè)備功能(如訪問攝像頭/麥克風(fēng)、打電話、聯(lián)網(wǎng)等)、應(yīng)用功能(如彈出懸浮窗、創(chuàng)建快捷方式等)。

權(quán)限組和子權(quán)限

我們先看什么是子權(quán)限。比如對(duì)于媒體相冊(cè)的功能操作來說。讀取相冊(cè)內(nèi)容是一種權(quán)限、寫入內(nèi)容到相冊(cè)是一種權(quán)限。 那么它們屬于媒體相冊(cè)這個(gè)大權(quán)限中的子權(quán)限。那么我們的應(yīng)用在申請(qǐng)媒體相冊(cè)的讀寫權(quán)限時(shí),考慮到用戶的體驗(yàn)。其實(shí)是會(huì)把兩個(gè)權(quán)限合并為一個(gè)彈出窗口,詢問用戶授予權(quán)限。如果用戶允許了,那么就等于獲得了媒體相冊(cè)的讀寫權(quán)限了。總結(jié)就是

  • 讀取媒體相冊(cè)是子權(quán)限、寫入媒體相冊(cè)是子權(quán)限
  • 它們合起來就是一個(gè)權(quán)限組。

image-20240608002954074

權(quán)限組和子權(quán)限一覽

鏈接

位置信息;
ohos.permission.LOCATION_IN_BACKGROUND;

ohos.permission.LOCATION;

ohos.permission.APPROXIMATELY_LOCATION;

相機(jī);
ohos.permission.CAMERA;
麥克風(fēng);
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;

健身運(yùn)動(dòng);
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;
讀取已安裝應(yīng)用列表;
ohos.permission.GET_INSTALLED_BUNDLE_LIST;
多設(shè)備協(xié)同;
ohos.permission.DISTRIBUTED_DATASYNC;
藍(lán)牙;
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 等級(jí)

APL(Ability Privilege Level,元能力權(quán)限等級(jí))等級(jí),分為兩類。一類是 應(yīng)用 APL 等級(jí) 、另一類是 權(quán)限 APL 等級(jí) 。說人話就是 不管官階的士官和其對(duì)應(yīng)的權(quán)限之間的關(guān)系。

應(yīng)用 APL 等級(jí)

應(yīng)用 APL 等級(jí)分為三級(jí):

APL 級(jí)別說明
normal默認(rèn)情況下,應(yīng)用的 APL 等級(jí)都為 normal 等級(jí)。
system_basic該等級(jí)的應(yīng)用服務(wù)提供系統(tǒng)基礎(chǔ)服務(wù)。
system_core該等級(jí)的應(yīng)用服務(wù)提供操作系統(tǒng)核心能力。 應(yīng)用 APL 等級(jí)不允許配置為 system_core。

權(quán)限 APL 等級(jí)

權(quán)限 APL 等級(jí)也分為三級(jí):

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

訪問控制列表(ACL)

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

需要注意的是,并不是所有的權(quán)限都能通過申請(qǐng) ACL 來實(shí)現(xiàn)跨等級(jí)的應(yīng)用來獲得。具體哪些權(quán)限可以被跨等級(jí)申請(qǐng)使用。HarmonyOS中也有明確標(biāo)識(shí)的。如: 鏈接

image-20240608004247416

授權(quán)方式

不管是什么的方式申請(qǐng)權(quán)限,最后在用戶的體驗(yàn)上一共分為兩種。 system_grant(系統(tǒng)授權(quán)) 和 user_grant(用戶授權(quán))

  1. system_grant(系統(tǒng)授權(quán))

    • 應(yīng)用被允許訪問的數(shù)據(jù)不會(huì)涉及到用戶或設(shè)備的敏感信息
    • 需要在安裝包中申請(qǐng) system_grant 權(quán)限,那么系統(tǒng)會(huì)在用戶安裝應(yīng)用時(shí), 自動(dòng)把相應(yīng)權(quán)限授予給應(yīng)用
  2. user_grant(用戶授權(quán))

    • 會(huì)彈出窗口詢問用戶的意見 -應(yīng)用被允許訪問的數(shù)據(jù)將會(huì)涉及到用戶或設(shè)備的敏感信息
    • 需要注意的是,如果用戶增加拒絕過授權(quán),那么只能通過引導(dǎo)用戶到系統(tǒng)設(shè)置頁面來手動(dòng)打開權(quán)限

    image-20240608004726930

申請(qǐng)應(yīng)用權(quán)限流程

一圖勝萬言

總流程圖

image-20240608004827845


normal 等級(jí)的應(yīng)用申請(qǐng)權(quán)限

image-20240608005114527

system_basic 等級(jí)的應(yīng)用申請(qǐng)權(quán)限

image-20240608005144778

申請(qǐng)應(yīng)用權(quán)限操作步驟

1.聲明權(quán)限-必須

  1. main/module.json5 中 配置 requestPermissions 字段聲明權(quán)限
  2. 配置內(nèi)容
    image-20240608005334602

2.聲明 ACL 權(quán)限-非必須

參考鏈接

image-20240608005438191

3.向用戶申請(qǐng)授權(quán)-非必須

如果你申請(qǐng)的權(quán)限類型是 system_grant(系統(tǒng)授權(quán)) ,那么可以跳過這個(gè)步驟。如果你申請(qǐng)的權(quán)限類型是 user_grant(用戶授權(quán)) ,那么需要主動(dòng)申請(qǐng)權(quán)限,此時(shí)用戶會(huì)彈出對(duì)話框。如

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;
// 申請(qǐng)攝像頭權(quán)限
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));
  });

此圖只做演示,不和上述代碼具體效果一一對(duì)應(yīng)

image-20240608002954074

4.訪問接口-必須

此時(shí),就可以直接調(diào)用相關(guān)接口,實(shí)現(xiàn)業(yè)務(wù)功能

5. 當(dāng)用戶拒絕時(shí),二次申請(qǐng)權(quán)限

針對(duì)以上彈窗,如果用戶點(diǎn)擊了 禁止 ,我們可以再次彈窗詢問用戶,如 “不授予權(quán)則無法繼續(xù)使用功能”,“禁止”,“允許”。

此時(shí),如果用戶點(diǎn)擊了允許

  1. 使用 requestPermissionOnSetting 在應(yīng)用內(nèi)直接彈窗 請(qǐng)求授權(quán)
  2. 使用 startAbility 跳轉(zhuǎn)到系統(tǒng)權(quán)限設(shè)置頁面,重新授權(quán)權(quán)限`
    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);
    

附上述流程思維導(dǎo)圖

image-20240608010002233


image-20240608010016337

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2085

    瀏覽量

    32322
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    protel輸出高質(zhì)量gerber

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

    高質(zhì)量C編程指南—林銳

    高質(zhì)量C編程指南—林銳
    發(fā)表于 08-03 08:44

    高質(zhì)量C++、C編程指南

    高質(zhì)量C++、C編程指南
    發(fā)表于 08-06 11:58

    高質(zhì)量C&C++

    高質(zhì)量C&C++
    發(fā)表于 08-16 19:45

    高質(zhì)量C++&C 編程指南

    高質(zhì)量C++&C 編程指南
    發(fā)表于 08-19 23:37

    原版PIC實(shí)戰(zhàn)項(xiàng)目-C(高質(zhì)量PDF版本)

    英文原版,高質(zhì)量保證。
    發(fā)表于 07-10 21:42

    高質(zhì)量C語言編程

    高質(zhì)量c語言,精,精,精,精華
    發(fā)表于 07-22 13:48

    編寫高質(zhì)量C語言代碼

    編寫高質(zhì)量C語言代碼 編寫高質(zhì)量C語言代碼 編寫高質(zhì)量C語言代碼
    發(fā)表于 07-31 17:47

    林銳《高質(zhì)量C語言編程》

    林銳《高質(zhì)量C語言編程》
    發(fā)表于 08-17 12:10

    高質(zhì)量C++與C編程指南

    高質(zhì)量C++與C編程指南
    發(fā)表于 03-09 10:54

    高質(zhì)量編程

    干貨,《495個(gè)C語言問題》、《華為內(nèi)部程序設(shè)計(jì)編碼規(guī)范》、《C語言:陷阱和缺陷》、《高質(zhì)量C編程[林銳]》
    發(fā)表于 02-27 19:39

    圖書推薦:高質(zhì)量C++編程指南

    高質(zhì)量C++編程指南
    發(fā)表于 06-12 13:49

    【下載】高質(zhì)量干貨-22本高質(zhì)量EMC電磁兼容性設(shè)計(jì)資料

    22本高質(zhì)量EMC電磁兼容性設(shè)計(jì)資料請(qǐng)君自取總體太大壓縮成兩個(gè)壓縮包。希望這些內(nèi)容能對(duì)大家在設(shè)計(jì)上有所幫助!
    發(fā)表于 03-20 00:02

    請(qǐng)問怎么才能設(shè)計(jì)出高質(zhì)量的印制線路板?

    怎么才能設(shè)計(jì)出高質(zhì)量的印制線路板?
    發(fā)表于 04-23 06:57

    如何用B&R寫出高質(zhì)量的程序

    B&R的特征包括哪些?B&R的命名規(guī)則是什么?如何用B&R寫出高質(zhì)量的程序?
    發(fā)表于 09-29 09:17
    主站蜘蛛池模板: 免费免费啪视频视频观看 | 久久久久国产一级毛片高清片 | h视频免费 | 免费大片a一级一级 | 经典三级第一页 | 狠狠鲁狠狠操 | 成人黄色免费网站 | 一区二区三区四区在线观看视频 | 免费黄色福利 | 天天摸日日摸人人看 | 手机看片精品国产福利盒子 | 日韩一卡 二卡 三卡 四卡 免费视频 | 亚洲五月激情 | hs网站免费 | 日本女人啪啪 | 免费看男女下面日出水视频 | 狠狠色狠色综合曰曰 | 亚洲国产成人久久午夜 | 轻点灬大ji巴太粗太长了爽文 | 男人和女人做免费做爽爽视频 | 日本高清加勒比 | 美日韩中文字幕 | 狠狠狠色丁香婷婷综合久久88 | 在线亚洲欧美性天天影院 | 国产美女精品一区二区三区 | 国产美女激情视频 | 欧美亚洲第一区 | 国模人体一区二区三区 | 黄色成人免费网站 | 色偷偷男人天堂 | 欧美在线观看www | h在线观看网站 | 无毒不卡在线观看 | 999伊人| 美女视频黄a视频美女大全 美女视频一区二区 | 亚洲 欧美 91| 九九久久国产精品大片 | 国产精品女人在线观看 | 真爽~张开腿~让我插 | 伊人yinren6综合网色狠狠 | 天天综合网网欲色 |