【发布时间】:2020-12-29 16:22:45
【问题描述】:
我正在尝试实现一些清理工具。越来越多的厂商出于“安全原因”禁止root设备,禁止不请求解锁。
API 28 之后,这段代码会报错:
ActivityCompat.requestPermissions(this, new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
}, 1); // Request permission or not, Will got same result
File rootFolder = Environment.getExternalStorageDirectory(); // That is working fine
rootFolder.listFiles(); // That will return null
当然,我可以用这个:
android:requestLegacyExternalStorage="true"
但我相信将来会被杀死。
那么,有什么优雅的方式来管理 SDCard?
【问题讨论】:
-
这适用于 Android 10。使用它,即使您为 Android 11 编译它也适用于 Android 10 设备。而且...该代码不适用于可移动的微型 sd 卡。
-
有一个名为 MANAGE_EXTERNAL_STORAGE 的权限可供某些应用程序使用,例如文件管理器、设备迁移应用程序等。它可以让您完全访问文件系统。您的清理工具应该属于同一类别developer.android.com/training/data-storage/manage-all-files
标签: android android-permissions android-10.0 android-external-storage