отправить смс намерение в Android - PullRequest
3 голосов
/ 16 февраля 2011
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!!!

Ответы [ 2 ]

6 голосов
/ 16 февраля 2011

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

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)

3 голосов
/ 16 февраля 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.

С уважением

...