Я прикрепляю изображение PNG к электронному письму со следующим кодом:
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, title);
values.put(MediaStore.Images.Media.DESCRIPTION, title);
values.put(MediaStore.Images.Media.MIME_TYPE, "image/png");
Uri uri = activity.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
OutputStream stream = activity.getContentResolver().openOutputStream(uri);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
stream.close();
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_SUBJECT, "Message title");
intent.putExtra(Intent.EXTRA_TEXT, "Message body");
intent.putExtra(Intent.EXTRA_STREAM, uri);
activity.startActivity(Intent.createChooser(intent, activity.getString(R.string.share)));
Собственное почтовое приложение HTC справляется с этим штрафом, но приложение GMail настаивает на том, чтобы приложениеРасширение ".jpg", хотя изображение определенно PNG.Это может быть просто ошибкой в приложении GMail, но я все равно хотел бы спросить.
Вот что logcat показывает, когда вложение прикреплено:
I/Gmail ( 285): >>>>> Attachment uri: content://media/external/images/media/11
I/Gmail ( 285): >>>>> type: image/png
I/Gmail ( 285): >>>>> name: 1287752711300.jpg
I/Gmail ( 285): >>>>> size: 0
Есть ли способконтролировать имя файла, используемого приложением GMail?Я не смог найти ничего очевидного в документации по дополнениям Intent.В идеале я мог бы указать полное имя, но даже получение правильного расширения файла было бы победой.