【问题标题】:start sms Activity @ ConversarionList.class from my own app从我自己的应用程序启动短信活动@ConversarionList.class
【发布时间】:2011-02-27 11:00:26
【问题描述】:

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

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

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

我目前的意图是这样的

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

结果是:

  • 编辑:Para -> To
  • 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

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

【问题讨论】:

    标签: android sms android-intent inbox


    【解决方案1】:

    什么是 SetClassName?

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

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

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

    来源:

    【讨论】:

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

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

      3. 您可以编写自己的应用程序来获取“新 SMS”意图,然后将其向前发送,也许。看到这个somewhat old tutorial

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

      【讨论】:

      • 我相信我们在这里谈论的是两件不同的事情。我只想复制这个: startActivity(new Intent(this, ConversationList.class));我取自:google.com/codesearch/p?hl=en#dpDz7Q08o9c/src/com/android/mms/…@LINE: 2028 在我自己的应用程序上。但我似乎无法让它工作。提前致谢。
      • 抱歉,我无法理解您的问题。
      • 我制作了一个应用程序,可以向用户显示未读短信的数量。我的想法是将该计数器“链接”到默认的短信应用程序。问题是:我无法在 ConversationList 活动中启动默认短信应用程序。 PS:ConversationList 活动是默认短信应用程序的主屏幕。
      【解决方案3】:

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

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

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

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

      startActivity(smsIntent);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 2015-05-26
        • 1970-01-01
        • 1970-01-01
        • 2015-09-19
        • 2016-06-13
        • 1970-01-01
        相关资源
        最近更新 更多