【问题标题】:Writing Access denied to removable SD Card对可移动 SD 卡的写入访问被拒绝
【发布时间】:2016-02-24 22:14:02
【问题描述】:

我在写入外部 SD 卡时遇到问题。每当我尝试写信时,我都会收到UnauthorizedAccessException。我已经在 Android Manifest 中检查了WriteExternalStorage
因为GetExternalStoragePublicDirectoryExternalStorageDirectory等都是返回内部存储的路径,所以我使用的是手动路径/storage/6363-3065/。如果我正在写入我的内部存储,程序运行没有错误,但写入 sd 卡时会引发异常。
我能做些什么来解决这个问题吗?我的意思是,这不可能是不可能的,因为像我的文件管理器这样的其他程序可以在没有 root 或任何东西的情况下完成...

编辑:

我使用的是装有 Android 6.0 的 LG G4。代码很简单:

string filepath = "/storage/6363-3065/Temp/tempfile.temp";
Directory.CreateDirectory(Path.GetDirectoryName(filepath));

【问题讨论】:

  • 请贴一些代码

标签: c# android xamarin sd-card


【解决方案1】:

试试这个:

     string text="TestText";
     var dir = System.IO.Path.Combine(Android.OS.Environment.ExternalStorageDirectory.ToString(), "yourAppName");
     if (Directory.Exists(dir) == false)
                {
                    Directory.CreateDirectory(dir);
                }
       string dbFileSDCard = System.IO.Path.Combine(Android.OS.Environment.ExternalStorageDirectory.ToString(), "yourAppName/YourFile.txt");
       System.IO.File.WriteAllText(@dbFileSDCard, text);

你有错误吗?

【讨论】:

  • 我没有收到任何错误,但它也不能解决我的问题,因为它只是写入内部存储。正如我所写,内置函数都是返回内部存储的路径,所以我使用手动路径到 sd 卡,但显然那里没有写访问权限。
  • 权限不是问题,它们已经过检查并且可以正常工作。问题可能出在 Android 处理 sd 卡的方式中,我正在寻找解决此问题的 xamarin 方式
  • 在 android 6 中,您可以决定是否要将 sd 卡用作内部存储或外部存储。看看这个:motorola-global-portal.custhelp.com/app/answers/…你选了哪一个?
  • 您是否已授予您的应用权限:设置 > 应用程序 > 特定应用程序 > 写入 sd 卡?
猜你喜欢
  • 1970-01-01
  • 2017-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多