2011-02-16 2 views
3
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 !!!» отображается. То, что я хочу сделать, - это отображать несколько сообщений и предварительно форматировать их (в разных строках).отправьте SMS Intent в Android

Так, например ...

Hello World 
You Rock!!! 

ответ

6

Если вы хотите отправить сообщение из нескольких строк просто перевод строки между 2 строкой.

x + "\n" + y 

Если вы хотите отправить несколько сообщений, нет способа сделать это, о чем я знаю. Вы можете использовать [startActivityForResult] [1], а затем в своем методе [onActivityResult] [2] вы можете отправить следующее сообщение.

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

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

+0

Его так просто хаха, спасибо огромное! =] – nubme

3

Проблема заключается в том, что вы перекрывая расширенные данные, а 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); 

Символ \ п является символ новой строки (http://en.wikipedia.org/wiki/Newline) специальный символ, что означает, что вы пишете эту строку в две строки (разделяя их прямо там, где \ n есть). \ n присутствует почти в каждом строковом представлении, поэтому он может работать и здесь. Попробуй и скажи нам.

Кстати, как совет, попробуйте дать понятные имена переменным (а не только x или y). Если вы хотите повторно использовать код или вы обнаружите ошибки, вы можете знать, что такое x или y.

С уважением

+0

Я благодарен за помощь, и я получил ее работу. Я использую x, y для простого примера в stackoverflow. – nubme

+0

ОК, это было «на всякий случай» напоминание =) – Korcholis