【问题标题】:send SMS Intent in Android在 Android 中发送 SMS Intent
【发布时间】:2014-12-04 14:46:46
【问题描述】:
String x="Hello World";
String y="You Rock!!!";
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", x); 
sendIntent.putExtra("sms_body", y); 
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);

我正在尝试通过 SMS 发送多个消息正文,但只有“You Rock!!!”被展示。我想要做的是能够显示多条消息并对其进行预格式化(在不同的行上)。

比如说……

Hello World
You Rock!!!

【问题讨论】:

    标签: android android-intent sms android-implicit-intent


    【解决方案1】:

    如果您想发送多行消息,只需在两个字符串之间添加一个换行符。

    x + "\n" + y
    

    如果想发送多条消息,我知道没有办法做到这一点。您可以使用 [startActivityForResult][1] 然后在您的活动 [onActivityResult][2] 方法中发送下一条消息。

    [1]:http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)

    [2]: http://developer.android.com/reference/android/app/Activity.html#onActivityResult(int, int, android.content.Intent)

    【讨论】:

      【解决方案2】:

      问题在于您正在覆盖扩展数据,因为 putExtra 并未将您在 Bundle 参数(第二个参数)中写入的所有内容添加到列表中,而是重置其内容。这就是为什么您只能看到最后一部分的原因,因为您首先将名为“sms_body”的额外名称设置为“Hello World”,然后将其重置为“You Rock!!!”。

      我没有尝试过,但如果你这样做,它可能会起作用:

      String smsBody="Hello World\nYou Rock!!!";
      Intent sendIntent = new Intent(Intent.ACTION_VIEW);
      sendIntent.putExtra("sms_body", smsBody); 
      sendIntent.setType("vnd.android-dir/mms-sms");
      startActivity(sendIntent);
      

      字符 \n 是一个换行符 (http://en.wikipedia.org/wiki/Newline) 特殊字符,这意味着您将该字符串写成两行(在 \n 所在的位置拆分它们)。 \n 几乎存在于每个字符串表示中,因此它也可以在这里工作。试一试告诉我们。

      顺便说一句,作为一个建议,试着给变量(不仅仅是 x 或 y)起一个可以理解的名字。如果您想重用代码或发现错误,您可能想知道 x 或 y 到底是什么。

      最好的问候

      【讨论】:

      • 非常感谢您为我提供的帮助。我使用 x, y 来简化 stackoverflow 上的示例。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      相关资源
      最近更新 更多