2010-06-03 87 views
5

我已经完成了我的研究,并发现有很多人从意图启动短信应用程序,事情是人们通常倾向于只为传出消息执行此操作。从我自己的应用程序开始短信活动@ ConversarionList.class

我目前在我的应用程序中显示未读的短信计数,但它接缝我无法获得正确的工作意图。

在每一个尝试,我得到相同的结果,它启动应用程序,但一个新的短信......

我目前的意图看起来像这样

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

  • 编辑:帕拉 - >要
  • Escribir mensaje - >写信息
  • 投递 - >发送

我希望我对此很清楚。

的问题是:

如何我可以通过一个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

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

回答

2

什么是SetClassName?

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

为了打开,我们需要做这个默认的SMS应用@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. 首先,看看不同的意图和lanch选项。你可以看到我对similar question的回答。您的代码将使用StartActivityForResult()调用某些内容。那是一个更难的问题。

  2. 如果你很幸运,你可以从消息传递应用程序中找到一个INTENT状态。您可能不会,因为没有保证手机会使用系统默认值。毕竟,当接收到短信时,它将被放入一些消息数据库中,并且只有根据消息应用程序逻辑才是'新'。出于安全原因,该数据库不共享。您可能要对此评论feature request

  3. 你可以编写自己的应用程序,抓住'新SMS'的意图,然后发送它,也许。请参阅somewhat old tutorial

祝你好运!让我们知道你是否有进步。

+0

我相信我们在这里谈论两件不同的事情。 我只是想复制这个: startActivity(new Intent(this,ConversationList.class)); 我从:http://www.google.com/codesearch/p?hl=zh-CN#dp7z08o9c/src/com/android/mms/ui/ComposeMessageActivity.java @LINE:2028 我自己的应用程序。但我似乎无法让它工作。 谢谢先进。 – 2010-06-04 14:21:41

+0

对不起,我不明白你的问题。 – 2010-06-04 22:13:44

+0

我做了一个应用程序,显示用户未读短信的数量。我的想法是将该计数器“链接”到默认的短消息应用程序。 问题是:我无法获得默认的短信应用程序以开始在ConversationList活动。 PS:ConversationList活动是默认短信应用程序的主屏幕。 – 2010-06-05 23:12:25

-2

意向smsIntent =新意图(Intent.ACTION_VIEW);

smsIntent.setType(“vnd.android-dir/mms-sms”);

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

smsIntent.putExtra(“sms_body”,“Body of Message”);

startActivity(smsIntent);

相关问题