Android中的MMS无法使用Intent.ACTION_SEND

问题描述 投票:1回答:3

我如何在Android中发送彩信?

我使用UI的代码如下:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra("address", "5556");
intent.putExtra("sms_body", "Gudmng !!");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File("/sdcard/sky.png"));
intent.putExtra(Intent.EXTRA_STREAM, uri); // imageUri set
intent.setType("image/*")
startActivity(intent);

但仍然是发送彩信的例外

ERROR/HierarchicalStateMachine(68): TetherMaster - unhandledMessage: msg.what=3

有帮助吗?

android android-mms
3个回答
2
投票

我不确定您的代码有什么问题,但是我已经使用了它并且可以工作:

Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("image/jpg");
sendIntent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity");
sendIntent.putExtra("sms_body", "hello");
sendIntent.putExtra(Intent.EXTRA_STREAM, uri);
startActivityForResult(sendIntent, 0);

也许您可以合并并根据需要进行更改。


0
投票

如果必须发送带有任何图像的彩信,则此代码。

Intent sendIntent = new Intent(Intent.ACTION_SEND); 
        sendIntent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity");
        sendIntent.putExtra("sms_body", "some text"); 
        sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/image_4.png"));
        sendIntent.setType("image/png");
        startActivity(sendIntent);

0
投票
Try this :

   Intent shareIntent = new Intent();
                shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
                shareIntent.setType("image/*");
                shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Chitza Share");
                // shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, data);
                shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, Activity_Home.sharefileUriList);
//            shareIntent.putExtra(Intent.EXTRA_STREAM, (Serializable) sharefileUriList);//pass uri here
                final List<ResolveInfo> activities = activity.getPackageManager().queryIntentActivities(shareIntent, 0);
                List<DialogItem> appNames = new ArrayList<DialogItem>();
                for (ResolveInfo info : activities) {
                    appNames.add(new DialogItem(info.loadLabel(activity.getPackageManager()).toString(),
                            info.loadIcon(activity.getPackageManager())));
                }
© www.soinside.com 2019 - 2024. All rights reserved.