所以我试图调用一个将图片附加到短信的意图。下面的代码正确地显示了一个文本消息窗口,其中包含模拟器上的图像,但在我的手机上崩溃了(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行。我将值硬编码到类中,这可能是错误的。我应该在这里使用什么来支持所有手机?
谢谢大家。
答案 0 :(得分:3)
根本不要设置类名。这将导致Android为您找到最佳活动,必要时启动应用选择器对话框。
另一种方法是解决意图的所有可能活动,并使用一些逻辑来确定您喜欢哪一个,并默认让Android选择是否您的逻辑不能选择一个。尽管如此,如果您的目标只是让用户发送彩信,那么就不需要那么高的细节了。
答案 1 :(得分:0)
sendIntent.setPackage( “com.android.mms”);
将解决您的问题