提问人:shyam__ 提问时间:4/3/2023 最后编辑:Miamyshyam__ 更新时间:7/14/2023 访问量:485
无法在 flutter 中访问 android 版本 11 及更高版本设备上的隐藏文件夹
Cannot access hidden folder on android version 11 and later devices in flutter
问:
当我尝试使用目录访问隐藏文件夹的内容时,当我尝试访问隐藏文件夹(以“.”开头)时,我得到空内容。我已经在AndroidMainifest.xml中添加了对外部存储的读取和写入权限。我能看到的唯一可能的解决方案是在 AndroidMainifest 中添加“MANAGE_EXTERNAL_STORAGE”权限,但我怀疑我是否可以使用此权限将应用程序发布到 Play 商店。下面是附加代码。
final directory = Directory(
"/storage/emulated/0/Android/media/com.whatsapp/WhatsApp/Media/.Statuses");
if (directory.existsSync()) {
final items = directory.listSync();
log(items.toString()); //empty list here in items
}
除了使用MANAGE_EXTERNAL_STORAGE权限之外,还有什么方法可以访问隐藏的文件夹吗?或者我们可以请求访问 Flutter 中的特定文件夹吗?
答:
0赞
Firas AT
4/3/2023
#1
Android 11 引入了许多限制,用于访问不属于单个应用系统提供的目录的文件。您可以在此处阅读有关此内容的更多信息。
例如,以 Android 11 为目标平台的应用现在无法访问属于其他应用的目录中的文件。
Android 11 还使许多权限请求(如下)的使用变得过时。话虽如此,您应该将这些请求保留在 Android 清单中,以便您的应用在运行旧版 Android 的设备上运行时将获得权限。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
评论
0赞
shyam__
4/4/2023
我已经添加了READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限,但有了这些权限,我只能访问未隐藏的文件夹
0赞
Firas AT
4/4/2023
不幸的是,无论使用 Android 11,您都无法再访问不属于您的应用程序的文件夹。我建议改变你的方法。
0赞
Augustus kekule
7/14/2023
#2
正如 Firas AT 已经说过的,您无法从 android 版本 11 及更高版本的 android 文件夹中的其他应用程序目录中读取文件。
或者,如果您想访问除 android 目录之外的所有其他文件夹,
你可以看看这个
评论