我尝试了以下方法,但没有一个达到我的目标。
以下代码显示选择器。
Intent mmsIntent = new Intent(Intent.ACTION_SEND);
mmsIntent.putExtra("sms_body", "some text");
mmsIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
mmsIntent.setType("image/png");
startActivity(mmsIntent);
以下代码显示撰写邮件视图,但未附加图片。
Intent smsIntent = new Intent(Intent.ACTION_SENDTO);
smsIntent.addCategory(Intent.CATEGORY_DEFAULT);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));//Uri.parse(url));
smsIntent.setData(Uri.parse("sms:" + "89565656"));
startActivity(smsIntent);
但是, 我需要使用sd卡中的图像创建消息撰写视图。 如何实现这一点。
提前谢谢你......!
答案 0 :(得分:3)
试试这个
Intent mmsIntent = new Intent(Intent.ACTION_SEND);
//file is the file on the SD Card
mmsIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(file.toURL().toString()));
mmsIntent.setType("image/png");//mmsIntent.setType("image/*"); Maybe?
startActivity(mmsIntent);
答案 1 :(得分:1)
如果不想打开选择器并直接附加图像
,请尝试使用此代码 PackageManager pm = getPackageManager();
Intent sendIntent = new Intent(Intent.ACTION_SEND);
List<ResolveInfo> resInfo = pm.queryIntentActivities(sendIntent, 0);
for (int i = 0; i < resInfo.size(); i++) {
ResolveInfo ri = resInfo.get(i);
String packageName = ri.activityInfo.packageName;
if(packageName.contains("mms")) {
Log.d("TAG", packageName + " : " + ri.activityInfo.name);
sendIntent.setComponent(new ComponentName(packageName, ri.activityInfo.name));
}
}
sendIntent.putExtra("address", "1234567890");
sendIntent.putExtra("sms_body", "some text");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("/sdcard/DCIM/Camera/image.jpg"));
sendIntent.setType("image/*");
startActivity(sendIntent);