成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

鴻蒙開(kāi)源三方組件(soul-permission)--權(quán)限檢查、請(qǐng)求

系統(tǒng)
soul-permission是一個(gè)權(quán)限組件,主要對(duì)權(quán)限的檢查及請(qǐng)求。WRITE_SYS_SETTINGS[寫(xiě)入系統(tǒng)設(shè)置])的檢查與請(qǐng)求。

[[414377]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

1. 介紹

soul-permission是一個(gè)權(quán)限組件,主要對(duì)權(quán)限的檢查及請(qǐng)求。方法級(jí)權(quán)限適配、解耦FractionAbility和Fraction、不再需要Context、不再需要onPermissionResult,支持特殊權(quán)限(Notification[通知]、SystemAlert[應(yīng)用懸浮窗]、UNKNOW_SOURCE[未知來(lái)源應(yīng)用安裝]、

WRITE_SYS_SETTINGS[寫(xiě)入系統(tǒng)設(shè)置])的檢查與請(qǐng)求。

2. 效果展示

 

3. 依賴(lài)

(1). 在工程的build.gradle的allprojects中,添加HAR所在的Maven倉(cāng)地址

  1. repositories { 
  2.     maven { 
  3.         url 'https://s01.oss.sonatype.org/content/repositories/releases/' 
  4.     } 

(2). 在應(yīng)用模塊的build.gradle的dependencies閉包中,添加如下代碼:

  1. dependencies { 
  2.         implementation 'io.github.dzsf:soul-permission:1.0.0' 
  3.     } 

4. 使用說(shuō)明

(1). 一句話版本完成自動(dòng)判斷、權(quán)限檢查、請(qǐng)求、后續(xù)操作:

  1. SoulPermission.getInstance().checkAndRequestPermission(SystemPermission.LOCATION, 
  2.         //if you want do noting or no need all the callbacks you may use SimplePermissionAdapter instead 
  3.         new CheckRequestPermissionListener() { 
  4.             @Override 
  5.             public void onPermissionOk(Permission permission) { 
  6.                 Utils.showMessage(ApiGuideAbility.this, permission.toString() + "\n is ok , you can do your operations"); 
  7.             } 
  8.  
  9.             @Override 
  10.             public void onPermissionDenied(Permission permission) { 
  11.                 Utils.showMessage(ApiGuideAbility.this, permission.toString() + " \n is refused , you can not do next things"); 
  12.             } 
  13.         }); 

 (2). 也可以一次請(qǐng)求多項(xiàng)權(quán)限

  1. SoulPermission.getInstance().checkAndRequestPermissions( 
  2.            Permissions.build(SystemPermission.CAMERA, SystemPermission.WRITE_USER_STORAGE), 
  3.            //if you want do noting or no need all the callbacks you may use SimplePermissionsAdapter instead 
  4.            new CheckRequestPermissionsListener() { 
  5.                @Override 
  6.                public void onAllPermissionOk(Permission[] allPermissions) { 
  7.                    Utils.showMessage(ApiGuideAbility.this, allPermissions.length + "permissions is ok" + " \n  you can do your operations"); 
  8.                } 
  9.  
  10.                @Override 
  11.                public void onPermissionDenied(Permission[] refusedPermissions) { 
  12.                    Utils.showMessage(ApiGuideAbility.this, refusedPermissions[0].toString() + " \n is refused , you can not do next things"); 
  13.                } 
  14.            }); 

 (3). 包含shouldShowRequestPermissionRationale的情形

  1. SoulPermission.getInstance().checkAndRequestPermission(SystemPermission.READ_CONTACTS, 
  2.           new CheckRequestPermissionListener() { 
  3.               @Override 
  4.               public void onPermissionOk(Permission permission) { 
  5.                   Utils.showMessage(ApiGuideAbility.this, permission.toString() + "\n is ok , you can do your operations"); 
  6.               } 
  7.  
  8.               @Override 
  9.               public void onPermissionDenied(Permission permission) { 
  10.                   // see CheckPermissionWithRationaleAdapter 
  11.                   if (permission.shouldRationale()) { 
  12.                       Utils.showMessage(ApiGuideAbility.this, permission.toString() + " \n you should show a explain for user then retry "); 
  13.                   } else { 
  14.                       Utils.showMessage(ApiGuideAbility.this, permission.toString() + " \n is refused , you can not do next things"); 
  15.                   } 
  16.               } 
  17.           }); 

 (4). 檢查某項(xiàng)權(quán)限

  1. //you can also use checkPermissions() for a series of permissions 
  2.   Permission checkResult = SoulPermission.getInstance().checkSinglePermission(SystemPermission.LOCATION); 

(5). 檢查特殊權(quán)限[通知權(quán)限]

  1. boolean checkResult = SoulPermission.getInstance().checkSpecialPermission(Special.NOTIFICATION); 

 (6). 檢查并請(qǐng)求特殊權(quán)限[未知應(yīng)用安裝]

  1. //if you want do noting or no need all the callbacks you may use SimpleSpecialPermissionAdapter instead 
  2.   SoulPermission.getInstance().checkAndRequestPermission(Special.UNKNOWN_APP_SOURCES, new SpecialPermissionListener() { 
  3.               @Override 
  4.               public void onGranted(Special permission) { 
  5.                   Utils.showMessage(ApiGuideAbility.this, "install unKnown app  is enable now "); 
  6.               } 
  7.  
  8.               @Override 
  9.               public void onDenied(Special permission) { 
  10.                   Utils.showMessage(ApiGuideAbility.this, "install unKnown app  is disable yet"); 
  11.               } 
  12.           }); 

 (7). 跳轉(zhuǎn)到應(yīng)用設(shè)置頁(yè)

  1. SoulPermission.getInstance().goApplicationSettings(data -> { 
  2.            //if you need to know when back from app detail 
  3.            Utils.showMessage(ApiGuideAbility.this, "back from go appDetail"); 
  4.        }); 

 (8). 注意事項(xiàng):

  1. SoulPermission內(nèi)部使用contentProvider自動(dòng)初始化, 
  2.    如果你項(xiàng)目中使用了通過(guò)替換Application方式從而可能會(huì)導(dǎo)致SoulPermission內(nèi)部初始化失敗的框架(如Tinker,騰訊樂(lè)固等), 
  3.    請(qǐng)手動(dòng)在你的Application類(lèi)中調(diào)用init即可(通過(guò)設(shè)置debug,可以看到錯(cuò)誤日志打印和相關(guān)Toast)。 
  4.    // invoke init in your application when auto init failed 
  5.    public class MyApplication extends AbilityPackage { 
  6.     
  7.        @Override 
  8.        public void onInitialize() { 
  9.            super.onInitialize(); 
  10.            SoulPermission.setDebug(true); 
  11.        } 
  12.    } 

5. 相關(guān)資料

IDE官方下載地址:https://developer.harmonyos.com/cn/develop/deveco-studio

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2021-08-02 14:54:50

鴻蒙HarmonyOS應(yīng)用

2021-08-09 10:24:49

鴻蒙HarmonyOS應(yīng)用

2021-04-29 14:32:24

鴻蒙HarmonyOS應(yīng)用

2021-03-10 15:03:40

鴻蒙HarmonyOS應(yīng)用

2021-04-28 15:07:06

鴻蒙HarmonyOS應(yīng)用

2021-03-24 09:30:49

鴻蒙HarmonyOS應(yīng)用

2021-08-03 12:47:58

鴻蒙HarmonyOS應(yīng)用

2021-08-04 14:16:41

鴻蒙HarmonyOS應(yīng)用

2021-08-26 16:07:46

鴻蒙HarmonyOS應(yīng)用

2021-08-03 10:07:41

鴻蒙HarmonyOS應(yīng)用

2021-03-01 14:00:11

鴻蒙HarmonyOS應(yīng)用

2021-04-28 09:56:44

鴻蒙HarmonyOS應(yīng)用

2021-07-06 18:21:31

鴻蒙HarmonyOS應(yīng)用

2021-04-08 14:57:52

鴻蒙HarmonyOS應(yīng)用

2021-08-30 17:55:58

鴻蒙HarmonyOS應(yīng)用

2021-08-05 15:06:30

鴻蒙HarmonyOS應(yīng)用

2021-04-20 15:06:42

鴻蒙HarmonyOS應(yīng)用

2021-03-03 09:42:26

鴻蒙HarmonyOS圖片裁剪

2021-11-17 15:37:43

鴻蒙HarmonyOS應(yīng)用

2021-07-20 15:20:40

鴻蒙HarmonyOS應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美一区二区小视频 | 精品视频在线一区 | 精品日韩在线 | 91高清免费 | 99亚洲精品 | 中文字幕高清在线 | 色婷婷综合成人av | 日韩欧美网 | 毛片在线免费播放 | 午夜看片网站 | 日本偷偷操 | 中文字幕日韩在线观看 | 精品一二三 | 91伊人 | 亚洲成人精品国产 | 欧美精品一区二区三区在线播放 | 国产精品1区2区 | 日韩av成人 | 99精品欧美一区二区蜜桃免费 | 国产成人精品一区二 | 国产精彩视频 | 中文字幕在线第一页 | 国产日韩欧美二区 | 婷婷综合激情 | 精品粉嫩aⅴ一区二区三区四区 | 九九伊人sl水蜜桃色推荐 | av在线播放不卡 | 久久国产精品久久 | 欧美日韩中文在线观看 | 亚洲精品片 | 九九热免费在线观看 | 成人欧美一区二区三区在线观看 | 亚洲精品一区在线 | 91社区在线观看高清 | 男人的天堂一级片 | 国产三级| 欧美五月婷婷 | 成人a视频片观看免费 | 亚洲国产一区二区三区 | 午夜色播 | 亚洲三区在线观看 |