0

所以我试图调用一个将图片附加到文本消息的意图。以下代码在模拟器上正确显示带有图像的文本消息窗口,但在我的手机(Droid X)上崩溃了。

            String name = FILE_NAME;

            Uri uri = Uri.fromFile(new File(name));

            Intent intent = new Intent(Intent.ACTION_SEND); 
            intent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity"); 
            intent.putExtra(Intent.EXTRA_STREAM, uri);
            intent.setType("image/png"); 
            startActivity(intent); 

.

12-30 12:56:50.628: ERROR/AndroidRuntime(14603): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.mms/com.android.mms.ui.ComposeMessageActivity}; have you declared this activity in your AndroidManifest.xml?

问题是 .setClassName 行。我将值硬编码到类中,这可能是错误的。我应该在这里使用什么来支持所有手机?

谢谢大家。

4

2 回答 2

3

根本不要设置类名。这将使 Android 为您找到可能的最佳活动,并在必要时启动应用程序选择器对话框。

另一种方法是为意图解决所有可能的活动,并使用一些逻辑来确定您喜欢哪个,如果您的逻辑无法选择一个,则默认让 Android 选择。不过这有点过头了,如果您的目标只是让用户发送彩信,则不需要那种详细程度。

于 2010-12-30T18:36:54.520 回答
0

sendIntent.setPackage("com.android.mms");

这将解决您的问题

于 2016-07-20T07:05:30.113 回答