从我自己的应用程序启动短信Activity @ ConversarionList.class

时间:2010-06-03 18:14:43

标签: android sms android-intent inbox

我已经完成了我的研究,并发现很多人从意图中启动短信应用程序,事实是人们通常倾向于只为传出消息这样做。

我目前正在我的应用上显示未读的短信计数,但它接缝我无法正常工作。

每次尝试都会得到相同的结果,它会启动应用程序,但需要新的短信......

我目前的意图是这样的

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("sms:"));
startActivity(intent);

,结果是:

Android sms Aplication form http://img291.imageshack.us/img291/1330/22012196.png

  • 编辑:Para - >到
  • Escribir mensaje - >写信息
  • Enviar - >发送

我希望我对此很清楚。

问题是:

如何通过Intent转到Android上短信应用程序的收件箱?


编辑:我只想复制一遍:

startActivity(new Intent(this, ConversationList.class));

我选择了:http://www.google.com/codesearch/p?hl=en#dpDz7Q08o9c/src/com/android/mms/ui/ComposeMessageActivity.java @LINE:2028

在我自己的应用程序上。但我似乎无法让它发挥作用。

3 个答案:

答案 0 :(得分:2)

什么是SetClassName?

为了启动位于当前应用程序之外的类,我们需要声明类似于“完整路径”的类...

为了打开默认的sms Application @ConversationList,我们需要这样做:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setClassName("com.android.mms", "com.android.mms.ui.ConversationList");

来源:

答案 1 :(得分:1)

  1. 首先,查看不同的意图和lanch选项。你可以看到我对similar question的回答。您的代码将使用StartActivityForResult()调用某些内容。这是一个更难的问题。

  2. 如果幸运的话,您可以从消息传递应用程序中找到状态的INTENT。您可能不会,因为无法保证手机将使用系统默认值。毕竟,当接收到SMS时,它被放入一些消息传递数据库中,并且仅根据消息传递应用程序逻辑是“新的”。出于安全原因,不共享该数据库。您可能想对此feature request发表评论。

  3. 您可以编写自己的应用程序来抓取“新短信”的意图,然后将其向前发送。请参阅此somewhat old tutorial

  4. 祝你好运!如果您取得进展,请告诉我们。

答案 2 :(得分:-2)

Intent smsIntent = new Intent(Intent.ACTION_VIEW);

smsIntent.setType( “vnd.android-DIR / MMS-SMS”);

smsIntent.putExtra(“address”,“12125551212”);

smsIntent.putExtra(“sms_body”,“消息正文”);

startActivity(smsIntent);