在安卓6.0后我們獲取一些手機的權限不僅需要在AndroidMainfist中配置,還需要我們在代碼中動態的去獲取一下相應的權限。在軟件開發版本沒有適配6.0的時候運行在安卓6.0的手機上是不會崩的,因為我們開發對應的版本沒有適配6.0,它仍然只需要在配置文件中添加權限即可;但是當版本適配到了6.0那么我們就需要到代碼中獲取權限,運行在低于6.0的手機版本時不執行代碼添加權限的方法;只會在大于或等于6.0時才會調用; 那么總結一下那些權限在6.0后需要在代碼中動態的申請呢? 1、讀寫的權限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { //申請WRITE_EXTERNAL_STORAGE權限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_REQUEST_CODE); }2、撥打電話的權限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE}, MY_PERMISSIONS_REQUEST_CALL_PHONE); }3、手機相機的權限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { //申請WRITE_EXTERNAL_STORAGE權限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 1);}4、定位的權限
Manifest.permission.access_COARSE_LOCATIONManifest.permission.ACCESS_FINE_LOCATION請求的方式就是判斷當前的版本是否是在安卓6.0以后,再判斷是否有相應的權限,如果沒有相應的權限那么就動態申請權限。這個套路也就是這樣,那么到底有多少的權限我們是需要在代碼中動態的添加的:
身體傳感器 日歷 攝像頭 通訊錄 地理位置 麥克風 電話 短信 存儲空間 大致也就是這些了。
新聞熱點
疑難解答