【问题标题】:Xamarin.Android: Prevent Package folder from external storage on app Uninstall with scope storage?Xamarin.Android:防止应用程序上的外部存储中的包文件夹使用范围存储卸载?
【发布时间】:2020-10-20 13:12:29
【问题描述】:

如果我正在编写的应用程序将一些文件永久存储到外部存储中会很方便(因此它们在应用程序退出[销毁]/卸载后仍然存在)。我想进行数据库备份并存储一些缓存和日志文件。我的目标是 Android-11,而之前我可以访问外部存储。 有什么办法可以让这些文件在卸载时不被删除? 非常感谢您提供示例帮助。

【问题讨论】:

    标签: xamarin.android android-11


    【解决方案1】:

    您可以将文件保存到外部存储上公共文件的存储目录为PUBLIC_EXTERNAL_STORAGEhttps://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

    【讨论】:

    • 您好,谢谢您的回复。我在问题下方的标签中提到了 Xamarin.android。我的基本关注是“在应用程序卸载时不会删除文件”。您提供的代码只会创建文件,但会在应用卸载时被删除。你能在这方面帮助我吗?感谢您的支持。
    • 重点是将文件放在公共外部存储中,而不是创建文件的代码。我提供的代码用于显示在公共外部下载文件夹中创建文件。当我删除我创建的文件时,该文件仍然在下载文件夹中。
    猜你喜欢
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多