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

How are you saving the pdf on that directory?

If you are using the getExternalStorageDirectory (i'm assuming you are), that pdf is private to your application, and can't be accessed by the email app.

If you need to keep that file private to your application, and still be able to share via email, use a ContentProvider : http://developer.android.com/guide/topics/providers/content-provider-creating.html

If you can keep that file on a shared directory, you should use getExternalStoragePublicDirectory(): http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

于 2012-10-22T16:45:36.520 に答える