【问题标题】:Permissions error when trying to attach file in Android e-mail尝试在 Android 电子邮件中附加文件时出现权限错误
【发布时间】:2013-10-14 14:51:37
【问题描述】:

我正在使用 Xamarin.Android,并且我创建了一个日志文件并将其添加到记录任何异常或消息中。一个非常简单的记录器,只是写入一个文本文件。当有人提交错误报告时,我想将 log.txt 文件附加到电子邮件中。由于权限错误(我没有具体信息)而失败,但它与我存储日志文件的文件夹有关。我正在使用以下代码,它将向您显示我存储 log.txt 文件的位置.

    public readonly static string BaseDir = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
    public readonly static string LogFilename = System.IO.Path.Combine(BaseDir, "log.txt");

这是我用来附加 log.txt 文件的代码,但它不起作用:

Java.IO.File file = new Java.IO.File(Utils.LogFilename);
intent.PutExtra(Intent.ExtraStream, Android.Net.Uri.FromFile(file));

在任何 Android 设备(SD 卡或非 SD 卡)上存储文件以允许附件与电子邮件一起使用的正确位置在哪里?

谢谢。

【问题讨论】:

    标签: android email android-intent xamarin.android


    【解决方案1】:

    System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); 将为您提供应用程序私有目录,该目录解析为/data/data/<your app namespace>/files,并且只有您的应用程序可以读取。

    您可能想要的是使用Android.OS.Environment.ExternalStorageDirectory,它为您提供到外部存储的路径,这可能是 SD 卡。这取决于设备。在那里,您可以特别为您的应用创建一个文件夹并将文件存储在其中,然后您可以将其传递给电子邮件应用。

    【讨论】:

    • 谢谢,还需要添加 write_external_storage 权限。
    猜你喜欢
    • 2019-01-11
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 2016-12-11
    • 1970-01-01
    相关资源
    最近更新 更多