1、默認開啟app全部權(quán)限
Android6.0之后推出動態(tài)申請權(quán)限荐健,所有敏感權(quán)限默認都是沒有開啟的狀態(tài),這兩天偶然間看到其他app安裝后所有權(quán)限(包括敏感權(quán)限)默認都是開啟的狀態(tài),6.0之后敏感權(quán)限都需要申請的涩赢,怎么可能跨過用戶的夹界,好奇心驅(qū)使我研究了一下馆里。
6.0以后,也就是23以后,敏感權(quán)限需申請鸠踪,特別是有些手機系統(tǒng)還需要儲存權(quán)限丙者,這就相當(dāng)尷尬了,因為大部分用戶安裝完app之后都是看都不看一直點下一步的营密,這個時候儲存權(quán)限默認是沒有開啟的械媒,但是app的自動更新需要這個權(quán)限,有些系統(tǒng)在需要這個儲存權(quán)限的時候還不會提示用戶评汰,那這就相當(dāng)尷尬了滥沫,怎么解決這個問題呢?讓我們來分析一下键俱。
我的開發(fā)工具是AS2.3的兰绣,創(chuàng)建項目后默認targetSdkVersion是25。 22 之前编振,也就是android5.1之前包括5.1缀辩,在清單文件中注冊過的權(quán)限默認都是開啟狀態(tài)的,但是23之后踪央,默認的就是沒有開啟臀玄,所以,我們只需要吧targetSdkVersion改為小于22就可以了畅蹂,這樣用戶安裝后權(quán)限默認就是給予的狀態(tài)健无,就解決了這個問題。
但是液斜,升級是大勢所趨累贤,所以大家盡量還是從了谷歌吧。
2少漆、兼容性
為了保持兼容性建議使用v4包的兼容方法:
ContextCompat.checkSelfPermission()
ActivityCompat.requestPermissions()
ActivityCompat.OnRequestPermissionsResultCallback
ActivityCompat.shouldShowRequestPermissionRationale()
當(dāng)targetSdkVersion小于23臼膏,但是設(shè)備是6.0系統(tǒng)時:
設(shè)備權(quán)限模型使用老的版本
清單文件中列出的權(quán)限只會在安裝時詢問
用戶可以在設(shè)置列表中編輯相關(guān)權(quán)限,這對應(yīng)用能否正常運行有很大影響
當(dāng)targetSdkVersion大于等于23示损,但是設(shè)備系統(tǒng)小于6.0時:
設(shè)備權(quán)限模型使用老的版本
清單文件中列出的權(quán)限只會在安裝時詢問
參考博文鏈接:https://blog.csdn.net/kong_gu_you_lan/article/details/52488097
使用運行時權(quán)限遇到的一些問題匯總到了一篇博客中渗磅,歡迎點擊查看《Android 6.0運行時權(quán)限問題匯總》。