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 ...