? ?對(duì)于Android應(yīng)用權(quán)限(危險(xiǎn)權(quán)限)來說,6.0運(yùn)行時(shí)權(quán)限認(rèn)證算是一個(gè)較大的變動(dòng),而官網(wǎng)介紹的方式比較繁瑣不易操作,而開源AndPermission依賴庫正好可以解決這個(gè)問題,它采用鏈?zhǔn)秸{(diào)用方式,一句話申請(qǐng)所需權(quán)限。
? ?下圖所示即為需要手動(dòng)申請(qǐng)的危險(xiǎn)權(quán)限,無論是運(yùn)行時(shí)權(quán)限還是普通權(quán)限,均需要在配置文件內(nèi)進(jìn)行獲取。

? ?首先在build文件內(nèi)引入AndPermission依賴:

? ?之后為了引用方便我采用封裝工具類的方式對(duì)AndPermission庫進(jìn)行封裝,方便大家使用。
? ?第一步,獲取當(dāng)前App包名,并通過包名判斷您要獲取的權(quán)限是否已授權(quán)。

? ?第二步,進(jìn)行通過AndPermission進(jìn)行動(dòng)態(tài)申請(qǐng),這里,我們?yōu)榱双@取用戶申請(qǐng)權(quán)限結(jié)果,定義兩個(gè)結(jié)果接口引用。

最后,我們需要在代碼里進(jìn)行引用,通常此方法是放在按鈕點(diǎn)擊中,如需要App初始進(jìn)行申請(qǐng),則可放在啟動(dòng)頁Activity內(nèi)。

? ?這里,我需要申請(qǐng)相機(jī)權(quán)限,按照步驟,我們會(huì)先進(jìn)行檢查,若App已獲取當(dāng)前權(quán)限則直接進(jìn)行后續(xù)操作,反之,通過AndPermission進(jìn)行申請(qǐng),而onRequestSuccess()及onRequestFailed()方法則分別對(duì)應(yīng)用戶授權(quán)結(jié)果,可根據(jù)情況進(jìn)行對(duì)應(yīng)設(shè)置。
? ?而諸位如果需要申請(qǐng)的是讀寫文件夾權(quán)限,則我們可以對(duì)文件夾權(quán)限進(jìn)行判斷,而具體代碼可以變更為下圖的示例:

? ?另外,值得注意的是,Android8.0針對(duì)動(dòng)態(tài)權(quán)限再次進(jìn)行變更。下圖引自Android 8.0 動(dòng)態(tài)權(quán)限變更

? ?AndPermission庫使用到此結(jié)束,當(dāng)然,庫內(nèi)還有其他一些方法,各位大神可視具體情況進(jìn)行引用。
