1.需要用戶手動(dòng)賦予的權(quán)限( Dangerous Permissions)
所屬權(quán)限組 權(quán)限
日歷 READ_CALENDAR
日歷 WRITE_CALENDAR
相機(jī) CAMERA
聯(lián)系人 READ_CONTACTS
聯(lián)系人 WRITE_CONTACTS
聯(lián)系人 GET_ACCOUNTS
位置 ACCESS_FINE_LOCATION
位置 ACCESS_COARSE_LOCATION
麥克風(fēng) 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
存儲(chǔ) READ_EXTERNAL_STORAGE
存儲(chǔ) WRITE_EXTERNAL_STORAGE
2.動(dòng)態(tài)獲取權(quán)限手趣,其余權(quán)限獲取類似
在AndroidManifest.xml中添加
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Java代碼:
private void requestPermission() {
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
} else {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}
}
}
權(quán)限回調(diào):
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1) {
if (grantResults[0] == PERMISSION_GRANTED && grantResults[1] == PERMISSION_GRANTED) {
Log.e(TAG, "onRequestPermissionsResult: " + "權(quán)限" + permissions[0] + "," + permissions[1] + "申請(qǐng)成功");
} else {
Log.e(TAG, "onRequestPermissionsResult: " + "權(quán)限" + permissions[0] + "," + permissions[1] + "申請(qǐng)失敗");
}
}
}