对于Android 11及以上版本,访问外部存储中的文件需要先获得MANAGE_EXTERNAL_STORAGE权限。以下是获取该权限的示例代码:
private fun checkPermission(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R &&
Environment.isExternalStorageManager().not()){
try {
val intent = Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
}catch (e: Exception){
val intent = Intent(Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
}
}
}
并且需要在AndroidManifest.xml文件中添加以下代码,申请MANAGE_EXTERNAL_STORAGE权限: