【发布时间】:2020-10-20 13:12:29
【问题描述】:
如果我正在编写的应用程序将一些文件永久存储到外部存储中会很方便(因此它们在应用程序退出[销毁]/卸载后仍然存在)。我想进行数据库备份并存储一些缓存和日志文件。我的目标是 Android-11,而之前我可以访问外部存储。 有什么办法可以让这些文件在卸载时不被删除? 非常感谢您提供示例帮助。
【问题讨论】:
标签: xamarin.android android-11
如果我正在编写的应用程序将一些文件永久存储到外部存储中会很方便(因此它们在应用程序退出[销毁]/卸载后仍然存在)。我想进行数据库备份并存储一些缓存和日志文件。我的目标是 Android-11,而之前我可以访问外部存储。 有什么办法可以让这些文件在卸载时不被删除? 非常感谢您提供示例帮助。
【问题讨论】:
标签: xamarin.android android-11
您可以将文件保存到外部存储上公共文件的存储目录为PUBLIC_EXTERNAL_STORAGE。 https://docs.microsoft.com/en-us/xamarin/android/platform/files/external-storage?tabs=windows
我以下载文件夹为例。
var DIR= Environment.GetExternalStoragePublicDirectory(Environment.DirectoryDownloads);
var FILE=DIR + "/test.txt";
using (FileOutputStream outfile = new FileOutputStream(FILE))
{
string line = "The very first line!";
outfile.Write(System.Text.Encoding.ASCII.GetBytes(line));
outfile.Close();
}
Xamarin.Forms 不提供访问外部存储的 api,我们必须在每个特定平台上实现它。您可以使用依赖服务。 https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/dependency-service/introduction
这是一个供您参考的依赖服务示例。 Save image from an image box to gallery in Xamarin Forms
从 Android 6.0 或更高版本开始,我们需要运行时权限检查。您可以查看我之前下载的示例。 Xamarin.Forms WebView not working with WebRTC
【讨论】: