Android 6.0權(quán)限適配過程中遇到的問題 淺談

一、Android6.0 權(quán)限變化

在Android M中權(quán)限系統(tǒng)被重新設(shè)計,發(fā)生了很大的變化。

1. 6.0以后Android權(quán)限分普通權(quán)限危險權(quán)限,如果應(yīng)用的targetSdkVersion>=23,危險權(quán)限AndroidManifest注冊了也沒用,要用戶動態(tài)獲取的,即谷歌為了用戶安全性考慮,對危險權(quán)限不再是安裝時許可了,而是使用時讓用戶自己判斷。

二、Android6.0普通權(quán)限normal permission 和 危險權(quán)限dangerous permission

Normal?Permission:寫在xml文件里,那么App安裝時就會默認獲得這些權(quán)限,即使是在Android6.0系統(tǒng)的手機上,用戶也無法在安裝后動態(tài)取消這些normal權(quán)限,這和以前的權(quán)限系統(tǒng)是一樣的,不變。

Dangerous?Permission:還是得寫在xml文件里,但是App安裝時具體如果執(zhí)行授權(quán)分以下幾種情況:

1、targetSDKVersion?<?23?&?API(手機系統(tǒng))?<?6.0?:安裝時默認獲得權(quán)限,且用戶無法在安裝App之后取消權(quán)限。

2、targetSDKVersion?>=?23?&?API(手機系統(tǒng))?<?6.0?:安裝時默認獲得權(quán)限,且用戶無法在安裝App之后取消權(quán)限。

3、targetSDKVersion < 23 & API(手機系統(tǒng)) >= 6.0 :安裝時默認獲得權(quán)限,但是用戶可以在安裝App完成后動態(tài)取消授權(quán)( 取消時手機會彈出提醒,告訴用戶這個是為舊版手機打造的應(yīng)用,讓用戶謹慎操作 )。

4、targetSDKVersion?>=?23?&?API(手機系統(tǒng))?>=?6.0?:安裝時不會獲得權(quán)限,可以在運行時向用戶申請權(quán)限。用戶授權(quán)以后仍然可以在設(shè)置界面中取消授權(quán),用戶主動在設(shè)置界面取消后,在app運行過程中可能會出現(xiàn)crash。

三、Android 6.0+ 權(quán)限的管理?

好處:為Android系統(tǒng)的安全增強保障,用戶能夠有更加透明化的知情權(quán)。

壞處:作為開發(fā)的程序猿,就開始苦逼了 ,尤其是國產(chǎn)定制出現(xiàn)的各種奇葩,例如 魅、米 系統(tǒng)的定制沒有按照谷歌給的標準(框架)來定制,魅Android6.0(Flyme)系統(tǒng)給用戶的感覺還是6.0以下的系統(tǒng)授權(quán)方式,米Android6.0(MIUI)更牛叉,他自己的權(quán)限管理高于谷歌給予的權(quán)限 在Android系統(tǒng)設(shè)置里面設(shè)置權(quán)限管理(這個權(quán)限都是危險權(quán)限) 基本上沒有效果,只有在MIUI里面的安全管家的權(quán)限管理設(shè)置才能生效,這樣類似的定制系統(tǒng)就大大的增加了,開發(fā)者的難度。


Android 6.0 ?9組危險權(quán)限

四、Android6.0權(quán)限處理

在權(quán)限方面網(wǎng)上有很多大牛們開源的庫 :

1.PermissionsDispatcher permissionsdispatcher提供了一個簡單的基于注釋的API,在Android的棉花糖處理運行時的權(quán)限。 這個圖書館將負擔(dān)來寫一大堆檢查報表是否得到許可或不從你,為了讓你的代碼干凈和安全。

2.RxPermissions這個庫可以與新的Android權(quán)限模型的rxjava使用M。如果你的項目里面沒有集成rxjava 庫 最好不要使用,因為不能增加應(yīng)用太多體積,當然了 如果你集成 ?還是不錯的

3.easypermissions是包裝庫來簡化基本系統(tǒng)權(quán)限的邏輯時,targetingandroid M或更高。這個也是谷歌官方開源的庫

4.AndPermission這個庫集成方便并且適配不少國產(chǎn)手機? ?Android 6.0 運行時權(quán)限管理最佳實踐

5.這個就是系統(tǒng)自帶的方法

if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {// 沒有權(quán)限。if(ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_CONTACTS)) {// 用戶拒絕過這個權(quán)限了,應(yīng)該提示用戶,為什么需要這個權(quán)限。}else{// 申請授權(quán)。ActivityCompat.requestPermissions(thisActivity,newString[]{Manifest.permission.READ_CONTACTS}, MMM);

}}

@OverridepublicvoidonRequestPermissionsResult(intrequestCode, String permissions[],int[] grantResults) {

switch(requestCode) {

caseMMM: {

if(grantResults.length >0&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {// 權(quán)限被用戶同意,可以去放肆了。

}else{// 權(quán)限被用戶拒絕了,洗洗睡吧。}return;

}}}

五、國產(chǎn)手機設(shè)置權(quán)限的頁面(持續(xù)更新中。。。)

這個是我從網(wǎng)上收集并總結(jié)的一個工具類



Android各大手機品牌手機跳轉(zhuǎn)到權(quán)限管理界面

這個鏈接地址后期會發(fā)出來 (如果沒有發(fā)出來可以發(fā)郵件到我郵箱提醒我 或者回復(fù) 郵箱:1732685009@qq.com)(圖片里面的代碼鏈接


六、總結(jié)

在處理Android6.0權(quán)限的過程中,遇到了各種各樣的問題,也在其中收獲了很多東西。在使用過程中不管是使用原生的方法還是第三方開源的庫 在適配國產(chǎn)手機或者一些定制比較深的手機還是會出現(xiàn)各種各樣的問題。Android6.0適配的道路還是任重道遠....... ?

在適配一些奇葩的手機系統(tǒng)時,在我們實在不能判斷權(quán)限有無的時候我們可以通過try catch來捕獲異常 從而減少因權(quán)限導(dǎo)致的崩潰

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,963評論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,348評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,083評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,706評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,442評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,802評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,795評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,983評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,542評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,287評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,486評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,030評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,710評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,116評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,412評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,224評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,462評論 2 378

推薦閱讀更多精彩內(nèi)容