从Android发送附件时如何添加.pdf扩展名?

从Android发送附件时如何添加.pdf扩展名?,android,email,attachment,Android,Email,Attachment,我正在尝试从Android发送pdf作为附件。代码如下: String[] mailto = {"me@gmail.com"}; Uri uri = Uri.parse("android.resource://com.mywebsite.sendemail/raw/mypdf"); Intent emailIntent = new Intent(Intent.ACTION_SEND); emailIntent.putExtra(Intent.EXTRA_EMAIL, mailto); emai

我正在尝试从Android发送pdf作为附件。代码如下:

String[] mailto = {"me@gmail.com"};
Uri uri = Uri.parse("android.resource://com.mywebsite.sendemail/raw/mypdf");

Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_EMAIL, mailto);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "My Subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "My Body");
emailIntent.setType("application/pdf");
emailIntent.putExtra(Intent.EXTRA_STREAM, uri);

startActivity(Intent.createChooser(emailIntent, "Send email using:"));

现在可以了,但问题是附件名为mypdf,而不是mypdf.pdf。我不知道如何发送它的分机。。。这就是我需要帮助的地方。谢谢。

我不相信你想要什么是可能的,因为你是从资源中提取PDF。如果将PDF复制到本地文件(具有正确的扩展名)并发送该文件,则应在生成的消息中获取扩展名。但是从资源的角度来看……我怀疑没有办法添加扩展。

每当我尝试使用.putExtra方法时,它总是会以“强制关闭”消息使我的应用程序崩溃。如果我使用类似于: String mtUri=“mailto:someone@gmail.com主题=一些主题和正文=一些文本和“; Intent Intent=新的Intent(Intent.ACTION_SENDTO,Uri.parse(mtUri)); 星触觉(意向)

它似乎工作得很好。我仍然有附加文件的问题,可能需要一些帮助来确定“附件”=file:///...“语法


谢谢,

谢谢马克。通过将文件复制到SD卡,然后使用Uri.fromFile,我已经能够解决这个问题。我不喜欢这个解决方案,因为如果SD卡丢失或繁忙,它将无法工作。我将pdf的副本放在/assets目录中,但无法使其与Uri.fromFile或Uri.parse一起使用。不知道为什么…嗯…
file:///android_asset/mypdf.pdf
可能有用。我只是在我自己的应用程序中使用了这种语法,而不是传递到另一个应用程序。我尝试了18种不同的fromFile和parse排列,包括按照您的建议使用android_资产。我很好地说服了自己,它必须从SD卡上读取。。。这是不幸的。这是安卓系统真正可以改进的地方。。。下面是我最后用来读取卡片的uri:uri=uri.fromFile(新文件(Environment.getExternalStorageDirectory(),“mypdf.pdf”);