我正在用以下代码将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应用程序中的一个错误,但我还是想问问。
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应用程序使用的文件名?我在意向附加文件中找不到任何明显的内容。理想情况下,我可以指定全名,但即使只是让它使用正确的文件扩展名也是一个胜利。