溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android 6.0中怎么動態(tài)獲取權(quán)限

發(fā)布時間:2021-06-26 14:44:48 來源:億速云 閱讀:198 作者:Leah 欄目:大數(shù)據(jù)

Android 6.0中怎么動態(tài)獲取權(quán)限,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

 哪些權(quán)限需要申請

Android目前所有權(quán)限大可分為兩種,一種是普通權(quán)限,另一種則是危險權(quán)限。普通權(quán)限指的是不會直接威脅到用戶的安全和隱私的權(quán)限,這些權(quán)限的申請,系統(tǒng)會自動幫我們申請。危險權(quán)限則是可能會對用戶的隱私以及設(shè)備的安全性造成威脅的權(quán)限。這些權(quán)限例如獲取聯(lián)系人信息、獲取設(shè)備的地理位置、打開攝像頭等。對于這危險權(quán)限,在Android 6.0之后必須由用戶自行判斷管理。如果用戶授權(quán),應(yīng)用程序才會具有這相應(yīng)的功能。

下圖為危險權(quán)限列表,一共9組24個權(quán)限。 Android 6.0中怎么動態(tài)獲取權(quán)限
需要注意的一點(diǎn): 如果權(quán)限組中有個權(quán)限得到用戶的授權(quán),那么該權(quán)限所在組中所有其他權(quán)限也會同時被授權(quán)。

0x02 實(shí)現(xiàn)

我自己基于samples-23_r02\system\RuntimePermissions\實(shí)例代碼,寫出了一個demo。demo是功能是動態(tài)獲取攝像頭權(quán)限,如果用戶同意授權(quán),則獲取攝像頭預(yù)覽畫面。 
1)在AndroidMesifest.xml文件中添加攝像頭權(quán)限 
Android 6.0中怎么動態(tài)獲取權(quán)限

2)使用ActivityCompat.checkPermission()進(jìn)行判斷需要用到的權(quán)限是否已經(jīng)經(jīng)過用戶授權(quán)這個方法第一個參數(shù)是上下文,第二個參數(shù)是具體的權(quán)限名。 

代碼可以這樣寫: 
Android 6.0中怎么動態(tài)獲取權(quán)限
我在demo里面已經(jīng)把權(quán)限抽取出來,封裝在一個工具內(nèi)中。 
在MainActivity中,判斷權(quán)限: 
Android 6.0中怎么動態(tài)獲取權(quán)限
在PermissionUtil中,具體實(shí)現(xiàn): 
Android 6.0中怎么動態(tài)獲取權(quán)限

3)如果沒有獲得權(quán)限,就需要調(diào)用ActivityCompat.requestPermissions()方法進(jìn)行申請權(quán)限,并且實(shí)現(xiàn)onRequestPermissionsResult()方法。 
requestPermissions()一共有3個參數(shù),第1個參數(shù)是Activity的實(shí)例,第2個參數(shù)是一個String數(shù)組,第2個參數(shù)是請求碼,可以自己自行定義,只要確保是唯一值即可。 
Android 6.0中怎么動態(tài)獲取權(quán)限
在demo中,我為了能夠兼容一次申請多個權(quán)限,自己實(shí)現(xiàn)代碼如下: 
Android 6.0中怎么動態(tài)獲取權(quán)限
onRequestPermissionsResult()方法的具體實(shí)現(xiàn): 
Android 6.0中怎么動態(tài)獲取權(quán)限

看完上述內(nèi)容,你們掌握Android 6.0中怎么動態(tài)獲取權(quán)限的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI