如何在Android/iOS中保存用户不可见文件?(Dio与path_provider场景)
Android端隐藏下载文件的解决方案
针对你遇到的Android端文件可见问题,直接改用应用专属内部存储目录即可,这类目录只有你的应用能访问,普通用户通过文件管理器看不到(root设备除外),具体操作如下:
- 替换路径获取方法:用path_provider里的
getApplicationSupportDirectory()或getCacheDirectory()替代Android端的getExternalStorageDirectory():getApplicationSupportDirectory():适合存放需要持久保留的应用专属文件,卸载应用时会被一并删除getCacheDirectory():适合存放临时缓存文件,系统在存储空间不足时可能自动清理,卸载应用也会删除
修改后的代码示例:
Directory? appPrivateDirectory = Platform.isIOS ? await getApplicationDocumentsDirectory() : await getApplicationSupportDirectory();
额外说明
- 使用这类内部存储目录,不需要申请任何外部存储权限,避免权限申请的麻烦
- 目录内的文件仅当前应用可读写,完全满足隐藏需求
- 如果需要文件在应用卸载后仍保留,这种方法不适用(内部存储会随应用卸载清空),但如果核心需求是隐藏文件,这是最合规的方案
内容的提问来源于stack exchange,提问作者amit.flutter
相关产品推荐
相关产品推荐

