整天都在试图找到在Android 11设备上创建特定应用程序文件夹的最佳方法。
我尝试了路径提供程序插件中的/storage/0/emulated/Android/data/com.talkmia.app/files
以及/storage/0/emulated/Android/data/com.talkmia.app/
,但是卸载应用程序后应用程序数据会被清除,而且我认为android:hasFragileData
是无用的,因为它只会提示如果应用程序是正常卸载的,而且它也保留了Flutter自己的额外数据。
我也尝试了使用saf
包的SAF,但结果发现您无法请求访问根存储,并且要求用户创建文件夹并授予权限是没有意义的。
现在我的唯一选择就是像WhatsApp一样创建它自己的文件夹。将其创建在Android/Media
中,但我发现这很难做到。我已经阅读了一些SO帖子以及Github问题,其中一些建议使用MediaStore API,而另一个建议使用Context::getExternalMediaDirs
,它会在Android/Media
中创建应用程序目录。
唉!我的问题现在是如何在dart/flutter中完成Context::getExternalMediaDirs
。我真的不想编写平台代码。
getApplicationDocumentsDirectory();
返回/data/0/com.talkmia.app/
作为目录,存储在那里的文件将在应用程序被卸载时被删除。 - Matnex Mix