Android 6.0分水嶺
Android 6.0 (API 23) 開始,危險級別權限(涉及用戶隱私數據)僅在執行相應的邏輯操作時才通知請求用戶授權。
targetSdkVersion < 23 時,App在安裝時獲取所有權限,但在6.0系統中用戶可手動設置app權限許可。
targetSdkVersion >= 23 時,App依然需要聲明所需的所有權限,但在6.0系統中,App安裝時僅自動授權普通權限,危險權限需要在所需權限的邏輯執行前向用戶申請授權。
參考:系統權限指導
申請授權
通過PermissionChecker
或ContextCompat.checkSelfPermission
方法查詢某個權限授權狀態,配合ActivityCompat.requestPermissions、shouldShowRequestPermissionRationale
方法請求授權和判斷是否需要向用戶解釋權限用途。覆蓋Activity.onRequestPermissionsResult
方法接收權限申請結果。
也可使用第三方庫 PermissionsDispatcher,以注解方式自動、快速執行權限申請邏輯。
權限名稱字符串可從Manifest.permission
對象中提取。