Android无法将文件作为附件共享

时间:2016-10-07 15:33:28

标签: android android-intent

我想仅将文件作为附件与用户设备上安装的电子邮件客户端共享。为此,我使用以下代码:

String tmp = "file://" + commonMethods.getFromPreferences(Constants.fileNameKey, "string");

Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.shareEmailSubject));
emailIntent.putExtra(Intent.EXTRA_TEXT, getString(R.string.shareEmailText));
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(tmp));

((Activity) getContext()).startActivityForResult(emailIntent, 1);

使用上面的代码,如果我与GMail应用程序共享该文件,它可以正常工作。但是,如果我与InboxOutlook应用程序共享它们,则该文件不会作为附件添加。

我有什么遗漏或需要做的事吗?

1 个答案:

答案 0 :(得分:1)

如果您阅读the documentation,则ACTION_SENDTO不会收取额外费用。任何应用程序都不需要尊重任何这些额外内容,更不用说所有附加内容了。

除此之外:

  • FLAG_GRANT_READ_URI_PERMISSION适用于content: Uri个值,而不适用于file: Uri个值。

  • 其他应用可能无法读取存储此文件的位置(例如,外部存储空间)。

  • 带有ACTION_SENDTO mailto:
  • Uri不会将您限制为用户设备上安装的电子邮件客户端&#34;。任何应用都可以实施具有匹配<intent-filter>

  • 的活动