日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

鴻蒙APP開發(fā)鴻蒙權(quán)限請求框架

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

掃碼添加小助手

加入工程師交流群

關(guān)于 HarmonyOS 的動態(tài)授權(quán)的常規(guī)操作流程和代碼我之前寫過一篇文章:《鴻蒙動態(tài)權(quán)限申請完整規(guī)范流程和操作詳解》。

文章地址如下:

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

權(quán)限控制是在進行 HarmonyOS 應(yīng)用開發(fā)中非常重要的一個環(huán)節(jié),幾乎所有的商業(yè)應(yīng)用中都會涉及到。

我們在曾經(jīng)使用的 Android app 應(yīng)用中經(jīng)常會遇到一些 app 會彈出各種敏感權(quán)限授權(quán)窗口提示用戶授權(quán)。

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

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

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

最小權(quán)限集,即應(yīng)用中確實需要的權(quán)限才進行申請。

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

未獲取用戶授權(quán)的話依然能使用應(yīng)用大部分功能,只是必須授權(quán)的功能無法使用。

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

具體項目源碼請見:

https://gitee.com/xdw1019/XdwPermissionsLib

XdwPermissionsLib 介紹

鴻蒙權(quán)限請求框架,提供一個符合正規(guī)權(quán)限調(diào)用流程的框架并基于鏈?zhǔn)秸{(diào)用(這里簡稱 strong 模式),同時提供一個并不推薦使用的簡單權(quán)限框架(簡稱 lazy 模式)。

strong 模式:正式項目推薦使用該模式。正規(guī)權(quán)限處理流程,用戶需要檢驗權(quán)限并且處理校驗結(jié)果的回調(diào)。

lazy 模式:該模式下開發(fā)者幾乎不用去編寫請求權(quán)限的代碼,特別是不處理回調(diào)。

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

當(dāng)然有些 app 不在乎用戶體驗,只要不授權(quán)就不讓使用的情況可以使用該模式。

動態(tài)申請權(quán)限流程圖如下:

使用說明

①Strong 模式

引用:

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

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

定義權(quán)限組,比如:

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

private String[] permissions = {

// 存儲權(quán)限

SystemPermission.WRITE_USER_STORAGE,

// 相機權(quán)限

SystemPermission.CAMERA

};

在需要觸發(fā)權(quán)限申請的地方調(diào)用如下代碼:

//開始動態(tài)申請權(quán)限,鏈?zhǔn)秸{(diào)用。//實際開發(fā)中申請權(quán)限的動作應(yīng)該放到需要用到該權(quán)限的操作中觸發(fā),比如點擊某個按鈕調(diào)起相機 StrongPermissionsUtils.getInstance(this).checkPermissions(this,permissions).setPermissionStateListener(new StrongPermissionsUtils.PermissionStateListener() {

@Override

public void onPermissionGranted() {

//授權(quán)成功之后的回調(diào)

//此處根據(jù)自己的實際業(yè)務(wù)編寫業(yè)務(wù)邏輯,此處用toast進行演示

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

}

@Override

public void onPermissionDenied(boolean isDisabledPrompt) {

//授權(quán)拒絕之后的回調(diào)

//此處根據(jù)自己的實際業(yè)務(wù)編寫業(yè)務(wù)邏輯,此處用toast進行演示

if(isDisabledPrompt){

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

}else{

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

}

}

});

在當(dāng)前的 ability 重寫 onRequestPermissionsFromUserResult 方法,代碼如下:

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

super.onRequestPermissionsFromUserResult(requestCode, permissions, grantResults);

//鑒權(quán)之后的回調(diào),必須調(diào)用

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

}

②Lazy 模式

引用:

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

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

將需要調(diào)用的 Ability 繼承 LazyPermissionAblity,如下:

public class MainAbility extends LazyPermissionAblity {

在當(dāng)前 Ability 中定義權(quán)限組,并且在 onStart 方法的第一行調(diào)用 setPermissions 方法。

代碼如下:

public class MainAbility extends LazyPermissionAblity {

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

private String[] permissions = {

// 存儲權(quán)限

SystemPermission.WRITE_USER_STORAGE,

// 相機權(quán)限

SystemPermission.CAMERA

};

@Override

public void onStart(Intent intent) {

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

super.setPermissions(permissions);

super.onStart(intent);

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

}

}

工程結(jié)構(gòu)說明

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

mylibrary:自定義的第三方權(quán)限庫,供外部項目調(diào)用。

entry:用來演示 mylibrary 庫中 strong 模式下的權(quán)限調(diào)用。

LazySample:用來演示 mylibrary 庫中 lazy 模式下的權(quán)限調(diào)用。

責(zé)任編輯:haq

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

    關(guān)注

    33

    文章

    1594

    瀏覽量

    76144
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2642

    瀏覽量

    70141
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2157

    瀏覽量

    36304

原文標(biāo)題:鴻蒙APP開發(fā):權(quán)限控制詳解!

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    SC-3568HA:解鎖鴻蒙權(quán)限API與分布式能力的工業(yè)控制平臺

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

    想體驗鴻蒙生態(tài),該怎么獲取鴻蒙開發(fā)板?有哪些途徑?

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

    如何申請鴻蒙開發(fā)板?想體驗鴻蒙生態(tài)。

    如何申請鴻蒙開發(fā)板?想體驗鴻蒙生態(tài)。
    發(fā)表于 11-29 08:34

    開源鴻蒙技術(shù)大會2025丨跨平臺開發(fā)框架分論壇:共拓移動開發(fā)新邊界,共創(chuàng)跨平臺生態(tài)新時代

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

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

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

    開源鴻蒙MNN AI應(yīng)用開發(fā)與MNN移植經(jīng)驗

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

    知乎開源“智能預(yù)渲染框架” 幾行代碼實現(xiàn)鴻蒙應(yīng)用頁面“秒開”

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

    【HarmonyOS 5】鴻蒙mPaaS詳解

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

    【HarmonyOS 5】金融應(yīng)用開發(fā)鴻蒙組件實踐

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

    鴻蒙應(yīng)用px,vp,fp概念詳解

    【HarmonyOS 5】鴻蒙應(yīng)用px,vp,fp概念詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財# 一、前言 目前的
    的頭像 發(fā)表于 07-07 11:48 ?1607次閱讀
    <b class='flag-5'>鴻蒙</b>應(yīng)用px,vp,fp概念詳解

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

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

    鴻蒙5開發(fā)寶藏案例分享---性能體驗設(shè)計

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

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

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

    鴻蒙5開發(fā)寶藏案例分享---自由流轉(zhuǎn)的拖拽多屏聯(lián)動

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

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

    ? 鴻蒙開發(fā)隱藏寶藏大公開!手把手教你玩轉(zhuǎn)\"一多\"地圖導(dǎo)航案例 ? 大家好呀!我是你們的老朋友,今天要給大家扒一扒鴻蒙官方文檔里那些\"藏得深\"的實戰(zhàn)
    發(fā)表于 06-03 16:17
    肇东市| 西青区| 什邡市| 鄂温| 通州区| 吴川市| 灵武市| 宿州市| 宜黄县| 潼南县| 阿拉善盟| 昌都县| 永昌县| 阿拉善左旗| 锦州市| 天津市| 罗定市| 株洲县| 江阴市| 古浪县| 四子王旗| 南部县| 高清| 香河县| 日照市| 浪卡子县| 浮山县| 扶余县| 双城市| 阿拉善盟| 威宁| 湘阴县| 大石桥市| 托克逊县| 红原县| 游戏| 昂仁县| 监利县| 延安市| 青阳县| 遂平县|