отправить SMS с намерением в Android

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!!!

person nubme    schedule 16.02.2011    source источник


Ответы (2)


Если вы хотите отправить многострочное сообщение, просто поместите новую строку между двумя строками.

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)

person abombss    schedule 16.02.2011

Проблема в том, что вы переопределяете расширенные данные, поскольку 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 присутствует почти в каждом представлении String, так что он может работать и здесь. Попробуйте и расскажите нам.

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

С наилучшими пожеланиями

person Sergi Juanola    schedule 16.02.2011
comment
большое спасибо за помощь, у меня все заработало. я использую x, y просто для примера в stackoverflow. - person nubme; 16.02.2011