Andorid 許可權工具包

2021-09-10 02:35:19 字數 2112 閱讀 4066

1). 建立該框架緣由

系統提供許可權請求較為繁瑣,此框架專注於解決許可權請求繁瑣問題。

2. 實現思路

3). 建立註解permissions

註解使用的位置為類名,且在程式執行時.

引數一:需要請求許可權的列表

引數二:請求碼

/**

* android 6.0 許可權註解框架

* * @retention 執行時註解

* @target 設定註解位置 -- 類

* * @param value 請求許可權陣列

* @param value 請求碼

*/@retention(annotationretention.runtime)

@target(allowedtargets = [annotationtarget.class])

annotation class permissions(

/** 許可權列表 */

val value: array,

/** 許可權請求碼 */

val code: int

)

4). 建立註解拒絕許可權permissiondenied

使用位置為方法,程式執行時註解

引數一:許可權請求碼

/**

* 拒絕許可權註解

* @retention 執行時註解

* @target 註解位置

* * @param value 請求碼

*/@retention(annotationretention.runtime)

@target(annotationtarget.function)

annotation class permissiondenied(val value: int)

5). 建立註解不再提示許可權permissionnotshow

註解使用位置為方法,程式執行時註解

引數一:許可權請求碼

/**

* 不再提示註解

* @retention 執行時註解

* @target 註解位置

* * @param value 請求碼

*/@retention(annotationretention.runtime)

@target(annotationtarget.function)

annotation class permissionnotshow(val value: int)

6). 建立成功註解permissionsucceed
/**

* 註解許可權成功

* * @param value 請求碼

* * @retention 執行時註解

* @target 註解位置

*/@retention(annotationretention.runtime)

@target(annotationtarget.function)

annotation class permissionsucceed(val value: int)

7). 請求許可權
/**

* 初始化許可權介面

* @param any 當前頁面

*/fun requestpermission(any: any)

}// request.foreach

// 判斷待請求的許可權陣列是否為空

if (request.isnotempty()) else }}

}

8). 處理許可權請求結果
/**

* 請求許可權結果

*/fun onrequestpermissionsresult(any: any, requestcode: int, permissions: array, grantresults: intarray) else }}

when

// 不再提示許可權列表不為空

notshowpermissions.isnotempty() ->

// 許可權請求成功

else -> }}

}}

碼雲位址

github位址

拷貝工具包

常用工具包封裝.懶得引各種雜七八的包,輕量級包.cglib還是需要的 scope provided 1.0.0 copyutils beancopier封裝.提供簡單的單一複製與list複製.不支援自定義建構函式的類的複製.abc abc copyutil copysigle abc class o...

Linux VMware tools工具包的安裝

啟動vm中的linux,選擇vmware workstation程式選單中vm install vmware tools.執行 mkdir mnt cdrom mount o ro dev cdrom mnt cdrom vmtools的安裝檔案放在vmware虛擬的cdrom中,首先要mount上...

PLSQL內建工具包

動態sql 不是在designer time寫的sql,而是可以在執行時臨時拼接起來的sql語句 例如 create or replace procedure delete all rows p tab name in varchar2,p rows del out number iscursor ...