標籤:dep mat github ant send hone 說明 代碼 手動
一、寫在前面
6.0以上動態載入許可權載入的是,需要使用者手動賦予的許可權( Dangerous Permissions),只有這些,其他許可權不用載入
所屬許可權組 許可權
日曆READ_CALENDAR
日曆WRITE_CALENDAR
相機CAMERA
連絡人READ_CONTACTS
連絡人WRITE_CONTACTS
連絡人GET_ACCOUNTS
位置ACCESS_FINE_LOCATION
位置ACCESS_COARSE_LOCATION
麥克風RECORD_AUDIO
電話READ_PHONE_STATE
電話CALL_PHONE
電話READ_CALL_LOG
電話WRITE_CALL_LOG
電話ADD_VOICEMAIL
電話USE_SIP
電話PROCESS_OUTGOING_CALLS
感應器BODY_SENSORS
簡訊SEND_SMS
簡訊RECEIVE_SMS
簡訊READ_SMS
簡訊RECEIVE_WAP_PUSH
簡訊RECEIVE_MMS
儲存READ_EXTERNAL_STORAGE
儲存WRITE_EXTERNAL_STORAGE
二、使用的架構RxPermissions2
build.gradle檔案中
在dependencies {}中添加依賴
compile ‘io.reactivex.rxjava2:rxandroid:2.0.1‘
compile ‘io.reactivex.rxjava2:rxjava:2.0.1‘
compile ‘com.tbruyelle.rxpermissions2:rxpermissions:[email protected]‘
三、關鍵代碼
1 /** 2 * 許可權列表 3 */ 4 String[] permissions = new String[]{ 5 Manifest.permission.CAMERA, 6 Manifest.permission.READ_PHONE_STATE, 7 Manifest.permission.WRITE_EXTERNAL_STORAGE, 8 Manifest.permission.READ_EXTERNAL_STORAGE 9 };10 11 /**12 * 請求許可權13 */14 private void requestPermissions() {15 RxPermissions rxPermission = new RxPermissions(this);16 rxPermission17 .request(permissions)//多個許可權用","隔開18 .subscribe(granted -> {19 if (granted) {20 //獲得了所有許可權21 textView.setAnimation(animationSet);22 } else {23 //至少有一個許可權沒有獲得24 Toast.makeText(SplashActivity.this,"請給應用賦予全部許可權,否則無法使用",Toast.LENGTH_SHORT).show();25 finish();26 }27 });28 29 }
四、該架構升級比較快,網上很多寫這個架構的博文都並不實用,還是要注意其github網站說明文檔
地址:https://github.com/tbruyelle/RxPermissions
Android APP啟動頁面動態載入全部許可權