5

我已经完成了我的研究,发现很多人从一个意图启动 sms 应用程序,问题是人们通常倾向于只为传出消息这样做。

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

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

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

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

结果是:

安卓短信申请表

  • 编辑:段 -> 到
  • 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

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

4

3 回答 3

2

什么是 SetClassName?

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

为了打开默认的短信应用@ConversationList,我们需要这样做:

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

来源:

于 2010-06-07T14:11:10.890 回答
1
  1. 首先,查看不同的意图和 lanch 选项。你可以看到我对类似问题的回答。您的代码将使用 StartActivityForResult() 调用某些内容。这是一个更难的问题。

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

  3. 您可以编写自己的应用程序来获取“新 SMS”意图,然后将其转发,也许。请参阅这个有点旧的教程

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

于 2010-06-03T23:35:51.380 回答
-2

意图 smsIntent = new Intent(Intent.ACTION_VIEW);

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

smsIntent.putExtra("地址", "12125551212");

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

startActivity(smsIntent);

于 2012-03-12T09:19:08.150 回答