Android6.0運(yùn)行時(shí)權(quán)限

Android6.0M中對(duì)用戶的權(quán)限分為了一般權(quán)限和危險(xiǎn)權(quán)限,這些危險(xiǎn)權(quán)限除了在AndroidManifest.xml中注冊(cè)以外,還需要在使用的時(shí)候?qū)τ脩暨M(jìn)行請(qǐng)求權(quán)限彈窗提醒,才可以使用。

  • 危險(xiǎn)權(quán)限,此類權(quán)限除了需要在AndroidManifest.xml注冊(cè)外,還需要在Activty中動(dòng)態(tài)獲取此權(quán)限,此權(quán)限會(huì)請(qǐng)求用戶允許
image
image
group:android.permission-group.CONTACTS
  permission:android.permission.WRITE_CONTACTS
  permission:android.permission.GET_ACCOUNTS
  permission:android.permission.READ_CONTACTS

group:android.permission-group.PHONE
  permission:android.permission.READ_CALL_LOG
  permission:android.permission.READ_PHONE_STATE
  permission:android.permission.CALL_PHONE
  permission:android.permission.WRITE_CALL_LOG
  permission:android.permission.USE_SIP
  permission:android.permission.PROCESS_OUTGOING_CALLS
  permission:com.android.voicemail.permission.ADD_VOICEMAIL

group:android.permission-group.CALENDAR
  permission:android.permission.READ_CALENDAR
  permission:android.permission.WRITE_CALENDAR

group:android.permission-group.CAMERA
  permission:android.permission.CAMERA

group:android.permission-group.SENSORS
  permission:android.permission.BODY_SENSORS

group:android.permission-group.LOCATION
  permission:android.permission.ACCESS_FINE_LOCATION
  permission:android.permission.ACCESS_COARSE_LOCATION

group:android.permission-group.STORAGE
  permission:android.permission.READ_EXTERNAL_STORAGE
  permission:android.permission.WRITE_EXTERNAL_STORAGE

group:android.permission-group.MICROPHONE
  permission:android.permission.RECORD_AUDIO

group:android.permission-group.SMS
  permission:android.permission.READ_SMS
  permission:android.permission.RECEIVE_WAP_PUSH
  permission:android.permission.RECEIVE_MMS
  permission:android.permission.RECEIVE_SMS
  permission:android.permission.SEND_SMS
  permission:android.permission.READ_CELL_BROADCASTS

Android6.0這些危險(xiǎn)權(quán)限可以通過(guò)adb shell pm list permissions -d -g查看

  • 一般權(quán)限,此類權(quán)限只需要在AndroidManifest.xml文件注冊(cè)聲明,用戶打開應(yīng)用時(shí),應(yīng)用會(huì)自動(dòng)獲取聲明權(quán)限
ACCESS_LOCATION_EXTRA_COMMANDS
ACCESS_NETWORK_STATE
ACCESS_NOTIFICATION_POLICY
ACCESS_WIFI_STATE
BLUETOOTH
BLUETOOTH_ADMIN
BROADCAST_STICKY
CHANGE_NETWORK_STATE
CHANGE_WIFI_MULTICAST_STATE
CHANGE_WIFI_STATE
DISABLE_KEYGUARD
EXPAND_STATUS_BAR
GET_PACKAGE_SIZE
INSTALL_SHORTCUT
INTERNET
KILL_BACKGROUND_PROCESSES
MODIFY_AUDIO_SETTINGS
NFC
READ_SYNC_SETTINGS
READ_SYNC_STATS
RECEIVE_BOOT_COMPLETED
REORDER_TASKS
REQUEST_INSTALL_PACKAGES
SET_ALARM
SET_TIME_ZONE
SET_WALLPAPER
SET_WALLPAPER_HINTS
TRANSMIT_IR
UNINSTALL_SHORTCUT
USE_FINGERPRINT
VIBRATE
WAKE_LOCK
WRITE_SYNC_SETTINGS

運(yùn)行時(shí)權(quán)限方法了解

  • ContextCompat.checkSelfPermission方法

    用于檢測(cè)某個(gè)權(quán)限是否已經(jīng)被授予,方法返回值為PackageManager.PERMISSION_DENIED或者PackageManager.PERMISSION_GRANTED,當(dāng)返回DENIED就需要進(jìn)行申請(qǐng)授權(quán)了

  • ActivityCompat.shouldShowRequestPermissionRationale方法

    這個(gè)API主要用于給用戶一個(gè)申請(qǐng)權(quán)限的解釋,該方法只有在用戶在上一次已經(jīng)拒絕過(guò)你的這個(gè)權(quán)限申請(qǐng)。也就是說(shuō),用戶已經(jīng)拒絕一次了,你又彈個(gè)授權(quán)框,你需要給用戶一個(gè)解釋,為什么要授權(quán),則使用該方法。

  • ActivityCompat.requestPermissions方法

    此方法用于運(yùn)行時(shí)權(quán)限申請(qǐng),通過(guò)參數(shù)String[] permissions可知,此方法支持多個(gè)權(quán)限申請(qǐng), 系統(tǒng)會(huì)根據(jù)權(quán)限逐一向用戶詢問(wèn)授權(quán)

  • onRequestPermissionsResult方法

    此方法是用戶申請(qǐng)權(quán)限回調(diào)方法,通過(guò)此方法判斷權(quán)限授權(quán)狀態(tài),此方法返回參數(shù) requestCode、String[] permissions、int[] grantResults中,requesCode是用戶申請(qǐng)權(quán)限驗(yàn)證的Code,并且返回所有權(quán)限及權(quán)限申請(qǐng)狀態(tài)

PackageManager中的兩個(gè)常量

PackageManager.PERMISSION_DENIED:該權(quán)限是被拒絕的。
PackageManager.PERMISSION_GRANTED:該權(quán)限是被授權(quán)的。

參考文章

鴻洋運(yùn)行時(shí)權(quán)限

運(yùn)行時(shí)權(quán)限封裝

運(yùn)行時(shí)權(quán)限講解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容