【发布时间】:2021-12-29 02:23:10
【问题描述】:
找不到权限 MANAGE_EXTERNAL_STORAGE 也找不到 Settings.ACTION_MANAGE_ALL_FILES_ACCESS 安卓工作室 android studio 版本为 2020.3.1 毕业版本 4.1.3 编译器版本 30 目标版本 30
【问题讨论】:
标签: java android android-studio kotlin gradle
找不到权限 MANAGE_EXTERNAL_STORAGE 也找不到 Settings.ACTION_MANAGE_ALL_FILES_ACCESS 安卓工作室 android studio 版本为 2020.3.1 毕业版本 4.1.3 编译器版本 30 目标版本 30
【问题讨论】:
标签: java android android-studio kotlin gradle
在清单中声明 MANAGE_EXTERNAL_STORAGE 权限。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
【讨论】:
在从存储中获取任何文件之前调用此方法
private fun requestPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
try {
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse(String.format("package:%s", requireContext().packageName))
startActivityForResult(intent, 1000)
} catch (e: Exception) {
val intent = Intent()
intent.action = Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
startActivityForResult(intent, 1000)
}
} else {
ActivityCompat.requestPermissions(
requireActivity(),
arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
1000 )
}
}
然后在 onActivityResult 你可以检查请求代码是否为 1000 然后从数据意图中获取 Uri
【讨论】: