国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

鴻蒙APP開發鴻蒙權限請求框架

OpenHarmony技術社區 ? 來源:鴻蒙技術社區 ? 作者:軟通夏德旺 ? 2021-09-28 09:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

關于 HarmonyOS 的動態授權的常規操作流程和代碼我之前寫過一篇文章:《鴻蒙動態權限申請完整規范流程和操作詳解》。

文章地址如下:

https://harmonyos.51cto.com/posts/5165

權限控制是在進行 HarmonyOS 應用開發中非常重要的一個環節,幾乎所有的商業應用中都會涉及到。

我們在曾經使用的 Android app 應用中經常會遇到一些 app 會彈出各種敏感權限授權窗口提示用戶授權。

有些 app(特別是流氓應用)經常會在第一次打開 app 的時候就提醒用戶授予所有需要的權限。

甚至一些權限跟 app 功能根本不相關(比如讀取通訊錄等),如果不授權則直接不讓你使用該 app,我遇到這類流氓應用一般果斷卸載。

而真正的開發過程中我們在權限申請的時候一般要遵循以下 3 個原則:

最小權限集,即應用中確實需要的權限才進行申請。

需要用到 XX 權限時才進行申請,即并不是 app 開始的時候一次性申請所有權限,而是需要用到 XX 特定功能必須要授權才能使用的時候(比如調用照相機),這個時候才申請該特定權限。

未獲取用戶授權的話依然能使用應用大部分功能,只是必須授權的功能無法使用。

下面我針對敏感權限申請更好的復用,編寫了一個第三方開源組件,取名為 XdwPermissionsLib。

具體項目源碼請見:

https://gitee.com/xdw1019/XdwPermissionsLib

XdwPermissionsLib 介紹

鴻蒙權限請求框架,提供一個符合正規權限調用流程的框架并基于鏈式調用(這里簡稱 strong 模式),同時提供一個并不推薦使用的簡單權限框架(簡稱 lazy 模式)。

strong 模式:正式項目推薦使用該模式。正規權限處理流程,用戶需要檢驗權限并且處理校驗結果的回調。

lazy 模式:該模式下開發者幾乎不用去編寫請求權限的代碼,特別是不處理回調。

該模式不推薦在正式項目中使用,可以用于平時編寫某些 demo 又不想處理權限的場景下。

當然有些 app 不在乎用戶體驗,只要不授權就不讓使用的情況可以使用該模式。

動態申請權限流程圖如下:

使用說明

①Strong 模式

引用:

方式一:通過 mylibrary 模塊生成 har 包,添加 har 包到 libs 文件夾內

方式二:maven 引入(待后續上傳到 maven 中心倉庫再支持)

定義權限組,比如:

//定義需要動態申請的權限組,可以是一個或多個權限。這里的權限還必須要在config.json中進行配置

private String[] permissions = {

// 存儲權限

SystemPermission.WRITE_USER_STORAGE,

// 相機權限

SystemPermission.CAMERA

};

在需要觸發權限申請的地方調用如下代碼:

//開始動態申請權限,鏈式調用。//實際開發中申請權限的動作應該放到需要用到該權限的操作中觸發,比如點擊某個按鈕調起相機 StrongPermissionsUtils.getInstance(this).checkPermissions(this,permissions).setPermissionStateListener(new StrongPermissionsUtils.PermissionStateListener() {

@Override

public void onPermissionGranted() {

//授權成功之后的回調

//此處根據自己的實際業務編寫業務邏輯,此處用toast進行演示

ToastUtil.toast(getContext(),“授權成功”);

}

@Override

public void onPermissionDenied(boolean isDisabledPrompt) {

//授權拒絕之后的回調

//此處根據自己的實際業務編寫業務邏輯,此處用toast進行演示

if(isDisabledPrompt){

ToastUtil.toast(getContext(),“您之前拒絕了授權并且禁止系統再提示,需要手動進入系統設置頁面開啟”);

}else{

ToastUtil.toast(getContext(),“您拒絕了授權”);

}

}

});

在當前的 ability 重寫 onRequestPermissionsFromUserResult 方法,代碼如下:

@Overridepublic void onRequestPermissionsFromUserResult(int requestCode, String[] permissions, int[] grantResults) {

super.onRequestPermissionsFromUserResult(requestCode, permissions, grantResults);

//鑒權之后的回調,必須調用

StrongPermissionsUtils.getInstance(this).onRequestPermissionsResult(requestCode, permissions, grantResults);

}

②Lazy 模式

引用:

方式一:通過 mylibrary 模塊生成 har 包,添加 har 包到 libs 文件夾內

方式二:maven 引入(待后續上傳到 maven 中心倉庫再支持)

將需要調用的 Ability 繼承 LazyPermissionAblity,如下:

public class MainAbility extends LazyPermissionAblity {

在當前 Ability 中定義權限組,并且在 onStart 方法的第一行調用 setPermissions 方法。

代碼如下:

public class MainAbility extends LazyPermissionAblity {

//定義需要動態申請的權限組,可以是一個或多個權限。這里的權限還必須要在config.json中進行配置

private String[] permissions = {

// 存儲權限

SystemPermission.WRITE_USER_STORAGE,

// 相機權限

SystemPermission.CAMERA

};

@Override

public void onStart(Intent intent) {

//lazy模式下,setPermissions的代碼調用必須放在onStart的第一行

super.setPermissions(permissions);

super.onStart(intent);

super.setMainRoute(MainAbilitySlice.class.getName());

}

}

工程結構說明

工程中總共有三個 module,分別為:

mylibrary:自定義的第三方權限庫,供外部項目調用。

entry:用來演示 mylibrary 庫中 strong 模式下的權限調用。

LazySample:用來演示 mylibrary 庫中 lazy 模式下的權限調用。

責任編輯:haq

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

    關注

    33

    文章

    1592

    瀏覽量

    75985
  • 鴻蒙系統
    +關注

    關注

    183

    文章

    2642

    瀏覽量

    69844
  • HarmonyOS
    +關注

    關注

    80

    文章

    2153

    瀏覽量

    36045

原文標題:鴻蒙APP開發:權限控制詳解!

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    SC-3568HA:解鎖鴻蒙權限API與分布式能力的工業控制平臺

    傳統嵌入式開發面臨硬件碎片化、高權限功能缺失、分布式協同復雜及自動化測試不足等痛點。SC-3568HA開發板基于鴻蒙系統,通過統一內核抽象層和硬件驅動
    的頭像 發表于 12-18 11:27 ?7182次閱讀
    SC-3568HA:解鎖<b class='flag-5'>鴻蒙</b>全<b class='flag-5'>權限</b>API與分布式能力的工業控制平臺

    想體驗鴻蒙生態,該怎么獲取鴻蒙開發板?有哪些途徑?

    如何快速上手體驗鴻蒙生態? 想體驗鴻蒙生態,該怎么獲取鴻蒙開發板?有哪些途徑?
    發表于 11-29 08:40

    如何申請鴻蒙開發板?想體驗鴻蒙生態。

    如何申請鴻蒙開發板?想體驗鴻蒙生態。
    發表于 11-29 08:34

    開源鴻蒙技術大會2025丨跨平臺開發框架分論壇:共拓移動開發新邊界,共創跨平臺生態新時代

    隨著開源鴻蒙生態的持續壯大,開發者迎來了除Android與iOS之外的“第三種選擇”。為解決“加入一個新生態就會增加一倍投入”的行業痛點,讓開發者的代碼能夠在更多平臺上復用,開源鴻蒙
    的頭像 發表于 11-20 17:31 ?976次閱讀
    開源<b class='flag-5'>鴻蒙</b>技術大會2025丨跨平臺<b class='flag-5'>開發</b><b class='flag-5'>框架</b>分論壇:共拓移動<b class='flag-5'>開發</b>新邊界,共創跨平臺生態新時代

    開源鴻蒙技術大會2025丨開源鴻蒙應用開發再提速,跨平臺框架PMC(籌)正式啟動孵化

    9月27日,開源鴻蒙技術大會2025在長沙國際會議中心盛大舉辦。大會現場,開源鴻蒙跨平臺框架PMC(籌)正式啟動孵化,標志著開源鴻蒙在應用開發
    的頭像 發表于 11-10 18:15 ?1403次閱讀
    開源<b class='flag-5'>鴻蒙</b>技術大會2025丨開源<b class='flag-5'>鴻蒙</b>應用<b class='flag-5'>開發</b>再提速,跨平臺<b class='flag-5'>框架</b>PMC(籌)正式啟動孵化

    開源鴻蒙MNN AI應用開發與MNN移植經驗

    本期內容由AI Model SIG提供,介紹了在開源鴻蒙中,利用MNN開源框架開發AI應用以及基于MNN源碼編譯與Har包封裝的方法。
    的頭像 發表于 09-04 11:31 ?4540次閱讀
    開源<b class='flag-5'>鴻蒙</b>MNN AI應用<b class='flag-5'>開發</b>與MNN移植經驗

    知乎開源“智能預渲染框架” 幾行代碼實現鴻蒙應用頁面“秒開”

    近日,知乎在Gitee平臺開源了其自研的鴻蒙“智能預渲染框架”,并將該框架的Har包上架到OpenHarmony三方庫中心倉。該框架鴻蒙
    的頭像 發表于 08-29 14:32 ?627次閱讀
    知乎開源“智能預渲染<b class='flag-5'>框架</b>” 幾行代碼實現<b class='flag-5'>鴻蒙</b>應用頁面“秒開”

    【HarmonyOS 5】鴻蒙mPaaS詳解

    【HarmonyOS 5】鴻蒙mPaaS詳解 ##鴻蒙開發能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財# 一、mPaaS是什么? mPaaS 是 Mobi
    的頭像 發表于 07-11 18:23 ?890次閱讀
    【HarmonyOS 5】<b class='flag-5'>鴻蒙</b>mPaaS詳解

    【HarmonyOS 5】金融應用開發鴻蒙組件實踐

    【HarmonyOS 5】金融應用開發鴻蒙組件實踐 ##鴻蒙開發能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財#
    的頭像 發表于 07-11 18:20 ?959次閱讀
    【HarmonyOS 5】金融應用<b class='flag-5'>開發</b><b class='flag-5'>鴻蒙</b>組件實踐

    中軟國際正式啟動鴻蒙軟件工場

    自2024年HarmonyOS NEXT版本起,HarmonyOS應用框架層更新為鴻蒙“單框架”,正式告別了對Android應用框架、內核的依賴。2025年,
    的頭像 發表于 06-17 15:44 ?1010次閱讀

    鴻蒙5開發寶藏案例分享---性能體驗設計

    (loadNonCriticalRes) }) } } 分段加載技巧 : 首屏元素≤15個 圖片使用WebP格式 避免啟動時網絡請求 結語:流暢是設計出來的! 看完這些案例是不是發現鴻蒙的性能優化其實有
    發表于 06-12 16:45

    使用DevEcoStudio 開發、編譯鴻蒙 NEXT_APP 以及使用中文插件

    # 使用DevEcoStudio 開發、編譯鴻蒙 NEXT_APP 以及使用中文插件 #鴻蒙開發工具 #DevEco Studio ##
    發表于 06-11 17:18

    鴻蒙5開發寶藏案例分享---自由流轉的拖拽多屏聯動

    ? 【干貨預警】鴻蒙開發寶藏案例大揭秘!手把手教你玩轉常用功能**?** 大家好呀~,今天在扒拉鴻蒙文檔的時候,突然發現官方竟然藏了一堆超實用的開發案例! ?** 之前總覺得
    發表于 06-03 18:50

    鴻蒙5開發寶藏案例分享---一多開發實例(地圖導航)

    ? 鴻蒙開發隱藏寶藏大公開!手把手教你玩轉\"一多\"地圖導航案例 ? 大家好呀!我是你們的老朋友,今天要給大家扒一扒鴻蒙官方文檔里那些\"藏得深\"的實戰
    發表于 06-03 16:17

    鴻蒙北向開發OpenHarmony5.0 DevEco Studio開發工具安裝與配置

    本文介紹OpenHarmony5.0 DevEco Studio開發工具安裝與配置,鴻蒙北向開發入門必備!由觸覺智能Purple Pi OH鴻蒙開發
    的頭像 發表于 03-28 18:05 ?1622次閱讀
    <b class='flag-5'>鴻蒙</b>北向<b class='flag-5'>開發</b>OpenHarmony5.0 DevEco Studio<b class='flag-5'>開發</b>工具安裝與配置