3
String emailAddress[] = {""};

    File externalStorage = Environment.getExternalStorageDirectory();

    Uri uri = Uri.fromFile(new File(externalStorage.getAbsolutePath() + "/" + "com.example.pdf/sample.pdf"));

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

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

logcat 中显示的消息是:

gMail Attachment URI: file:///mnt/sdcard/com.example.pdf/sample.pdf
gMail type: application/pdf
gmail name: sample.pdf
gmail size: 0

问题是样本 pdf 的大小为 0,因此 pdf 不会作为电子邮件中的附件发送。谁能告诉我我做错了什么?

4

1 回答 1

0

您如何将pdf保存在该目录中?

如果您使用的是getExternalStorageDirectory(我假设您是),则该 pdf 对您的应用程序来说是私有的,并且无法通过电子邮件应用程序访问。

如果您需要将该文件保密到您的应用程序,并且仍然能够通过电子邮件共享,请使用:http ContentProvider: //developer.android.com/guide/topics/providers/content-provider-creating.html

如果您可以将该文件保存在共享目录中,则应使用:http getExternalStoragePublicDirectory(): //developer.android.com/guide/topics/data/data-storage.html#filesExternal

于 2012-10-22T16:45:36.520 回答