AndroidでIntentを利用して添付ファイル付きのメール送信をすると、メールにファイルが添付されずに送信される現象

AndroidでIntentを利用してメールアプリを呼び出し添付ファイル付きで送信する場合、一部のメールアプリを利用して送信すると添付ファイルが消えてしまう現象があります。
ここでは、これを回避する方法を説明します。

ネット上によくある、Intentを利用して添付ファイル付きでメール送信するサンプルは以下のようなソースとなります。

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"test@exsample.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "test");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://mnt/sdcard/download/test.txt"));
intent.setType("text/plain");
startActivity(intent);

しかし、一部のメールアプリを利用してメール送信した場合、正常に送信はされるのですが、受信側では添付ファイルがない状態で受信されます。
そこで、以下のような方法でIntentを利用してメールアプリを呼び出せば、添付ファイル付きで送信できます。

File sendFile = new File("/mnt/sdcard/download/text.txt"); 
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"test@exsample.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "test");
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(sendFile)); 
startActivity(intent);

※Intent.EXTRA_STREAMで Uri.Pase ではなく Uri.fromFile を指定します。