選擇申請權(quán)限的方式
應(yīng)用在訪問數(shù)據(jù)或者執(zhí)行操作時(shí),需要評估該行為是否需要應(yīng)用具備相關(guān)的權(quán)限。如果確認(rèn)需要目標(biāo)權(quán)限,則需要在應(yīng)用安裝包中申請目標(biāo)權(quán)限。
每一個(gè)權(quán)限的權(quán)限等級、授權(quán)方式不同,申請權(quán)限的方式也不同,開發(fā)者在申請權(quán)限前,需要先根據(jù)以下流程判斷應(yīng)用能否申請目標(biāo)權(quán)限。
上圖的數(shù)字標(biāo)注,請參考以下說明:
- 標(biāo)注1:應(yīng)用APL等級與權(quán)限等級的匹配關(guān)系請參考[APL等級說明]。
- 標(biāo)注2:權(quán)限的授權(quán)方式分為user_grant(用戶授權(quán))和system_grant(系統(tǒng)授權(quán)),具體請參考[授權(quán)方式說明]。
- 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]- 如果目標(biāo)權(quán)限是system_grant類型,開發(fā)者在進(jìn)行權(quán)限申請后,系統(tǒng)會在安裝應(yīng)用時(shí)自動為其進(jìn)行權(quán)限預(yù)授予,開發(fā)者不需要做其他操作即可使用權(quán)限。
- 在應(yīng)用需要獲取user_grant權(quán)限時(shí),請完成以下步驟:
- 在配置文件中,聲明應(yīng)用需要請求的權(quán)限。
- 將應(yīng)用中需要申請權(quán)限的目標(biāo)對象與對應(yīng)目標(biāo)權(quán)限進(jìn)行關(guān)聯(lián),讓用戶明確地知道,哪些操作需要用戶向應(yīng)用授予指定的權(quán)限。
- 運(yùn)行應(yīng)用時(shí),在用戶觸發(fā)訪問操作目標(biāo)對象時(shí)應(yīng)該調(diào)用接口,精準(zhǔn)觸發(fā)動態(tài)授權(quán)彈框。該接口的內(nèi)部會檢查當(dāng)前用戶是否已經(jīng)授權(quán)應(yīng)用所需的權(quán)限,如果當(dāng)前用戶尚未授予應(yīng)用所需的權(quán)限,該接口會拉起動態(tài)授權(quán)彈框,向用戶請求授權(quán)。
- 檢查用戶的授權(quán)結(jié)果,確認(rèn)用戶已授權(quán)才可以進(jìn)行下一步操作。
- 標(biāo)注3:應(yīng)用可以通過ACL(訪問控制列表)方式申請高級別的權(quán)限。
應(yīng)用可根據(jù)目標(biāo)權(quán)限的開放范圍、授權(quán)方式,參考以下操作路徑申請對應(yīng)權(quán)限。
normal等級應(yīng)用申請權(quán)限的方式
權(quán)限類型 | 授權(quán)方式 | 操作路徑 |
---|---|---|
[所有應(yīng)用可申請] | system_grant | [聲明權(quán)限] > 訪問接口 |
[所有應(yīng)用可申請] | user_grant | [聲明權(quán)限] > [向用戶申請授權(quán)] > 訪問接口 |
[允許normal等級應(yīng)用通過ACL跨級申請] | system_grant | [聲明權(quán)限] > [聲明ACL權(quán)限] > 訪問接口 |
[允許normal等級應(yīng)用通過ACL跨級申請] | user_grant | [聲明權(quán)限] > [聲明ACL權(quán)限]> [向用戶申請授權(quán)] > 訪問接口 |
說明:
- 如果system_basic等級的權(quán)限,ACL使能為false,則normal等級應(yīng)用無法申請?jiān)摍?quán)限。
- 當(dāng)前可通過DevEco Studio完成[ACL方式跨級別申請權(quán)限],但該方法僅用于應(yīng)用調(diào)試階段使用,不可用于發(fā)布上架應(yīng)用市場。如果需要開發(fā)商用版本的應(yīng)用,請?jiān)趯?yīng)的應(yīng)用市場進(jìn)行發(fā)布證書和Profile文件的申請。
system_basic等級應(yīng)用申請權(quán)限的方式
權(quán)限等級 | 授權(quán)方式 | ACL使能 | 操作路徑 |
---|---|---|---|
normal、system_basic | system_grant | - | [聲明權(quán)限]> 訪問接口 |
normal、system_basic | user_grant | - | [聲明權(quán)限] > [向用戶申請授權(quán)]> 訪問接口 |
system_core | system_grant | true | [聲明權(quán)限]> [聲明ACL權(quán)限]> 訪問接口 |
system_core | user_grant | true | [聲明權(quán)限] > [聲明ACL權(quán)限] > [向用戶申請授權(quán)] > 訪問接口HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
如果應(yīng)用需要將自身的APL等級聲明為system_basic及以上,在開發(fā)應(yīng)用安裝包時(shí),需要修改應(yīng)用的HarmonyAppProvision配置文件即SDK目錄下的“Toolchains / _{Version} _/ lib / UnsgnedReleasedProfileTemplate.json
”文件),并重新進(jìn)行應(yīng)用簽名。
修改方式:
HarmonyAppProvision配置文件示例如下所示,修改"bundle-info" > "apl" 字段。
"bundle-info" : {
// ...
"apl": "system_basic",
// ...
},
說明: 直接修改HarmonyAppProvision配置文件的方式,僅用于應(yīng)用調(diào)試階段使用,不可用于發(fā)布上架應(yīng)用市場。如果需要開發(fā)商用版本的應(yīng)用,請?jiān)趯?yīng)的應(yīng)用市場進(jìn)行發(fā)布證書和Profile文件的申請。
審核編輯 黃宇
-
接口
+關(guān)注
關(guān)注
33文章
8777瀏覽量
152419 -
框架
+關(guān)注
關(guān)注
0文章
403瀏覽量
17617 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2411瀏覽量
43302
發(fā)布評論請先 登錄
相關(guān)推薦
HarmonyOS NEXT應(yīng)用元服務(wù)開發(fā)Intents Kit(意圖框架服務(wù))綜述
鴻蒙原生開發(fā)手記:01-元服務(wù)開發(fā)
鴻蒙開發(fā)Ability Kit程序訪問控制:向用戶申請單次授權(quán)

鴻蒙開發(fā)Ability Kit程序訪問控制:申請使用受限權(quán)限

鴻蒙開發(fā)Ability Kit程序訪問控制:對所有應(yīng)用開放

鴻蒙開發(fā)Ability Kit程序框架服務(wù):向用戶申請單次授權(quán)

鴻蒙開發(fā)Ability Kit程序框架服務(wù):應(yīng)用權(quán)限管控概述 程序訪問控制

鴻蒙開發(fā)Ability Kit程序框架服務(wù):聲明權(quán)限

鴻蒙開發(fā)Ability Kit程序框架服務(wù):向用戶申請授權(quán)

鴻蒙原生應(yīng)用元服務(wù)開發(fā)-位置服務(wù)申請權(quán)限
鴻蒙Ability Kit(程序框架服務(wù))【應(yīng)用啟動框架AppStartup】
鴻蒙Ability Kit(程序框架服務(wù))【Ability與ServiceExtensionAbility通信】

鴻蒙Ability Kit(程序框架服務(wù))【Ability內(nèi)頁面間的跳轉(zhuǎn)】

鴻蒙開發(fā)接口Ability框架:【 (Context模塊)】

評論