自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

鴻蒙開源三方組件(soul-permission)--權限檢查、請求

系統(tǒng)
soul-permission是一個權限組件,主要對權限的檢查及請求。WRITE_SYS_SETTINGS[寫入系統(tǒng)設置])的檢查與請求。

[[414377]]

想了解更多內(nèi)容,請訪問:

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

https://harmonyos.51cto.com

1. 介紹

soul-permission是一個權限組件,主要對權限的檢查及請求。方法級權限適配、解耦FractionAbility和Fraction、不再需要Context、不再需要onPermissionResult,支持特殊權限(Notification[通知]、SystemAlert[應用懸浮窗]、UNKNOW_SOURCE[未知來源應用安裝]、

WRITE_SYS_SETTINGS[寫入系統(tǒng)設置])的檢查與請求。

2. 效果展示

 

3. 依賴

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

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

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

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

4. 使用說明

(1). 一句話版本完成自動判斷、權限檢查、請求、后續(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). 也可以一次請求多項權限

  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). 檢查某項權限

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

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

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

 (6). 檢查并請求特殊權限[未知應用安裝]

  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)到應用設置頁

  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). 注意事項:

  1. SoulPermission內(nèi)部使用contentProvider自動初始化, 
  2.    如果你項目中使用了通過替換Application方式從而可能會導致SoulPermission內(nèi)部初始化失敗的框架(如Tinker,騰訊樂固等), 
  3.    請手動在你的Application類中調(diào)用init即可(通過設置debug,可以看到錯誤日志打印和相關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. 相關資料

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

想了解更多內(nèi)容,請訪問:

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

https://harmonyos.51cto.com

 

 

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關推薦

2021-08-02 14:54:50

鴻蒙HarmonyOS應用

2021-08-09 10:24:49

鴻蒙HarmonyOS應用

2021-08-04 14:16:41

鴻蒙HarmonyOS應用

2021-03-10 15:03:40

鴻蒙HarmonyOS應用

2021-04-29 14:32:24

鴻蒙HarmonyOS應用

2021-08-03 10:07:41

鴻蒙HarmonyOS應用

2021-04-28 09:56:44

鴻蒙HarmonyOS應用

2021-03-24 09:30:49

鴻蒙HarmonyOS應用

2021-08-03 12:47:58

鴻蒙HarmonyOS應用

2021-04-28 15:07:06

鴻蒙HarmonyOS應用

2021-08-26 16:07:46

鴻蒙HarmonyOS應用

2021-03-01 14:00:11

鴻蒙HarmonyOS應用

2021-11-17 15:37:43

鴻蒙HarmonyOS應用

2021-01-27 10:04:46

鴻蒙HarmonyOS動畫

2021-08-10 15:23:08

鴻蒙HarmonyOS應用

2021-10-19 10:04:51

鴻蒙HarmonyOS應用

2021-04-08 14:57:52

鴻蒙HarmonyOS應用

2021-04-20 15:06:42

鴻蒙HarmonyOS應用

2021-07-06 18:21:31

鴻蒙HarmonyOS應用

2021-08-05 15:06:30

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號