В моем приложении есть список, содержащий телефонные контакты. Когда пользователь нажимает на контакт, он может выбрать из меню отправку смс контакту (или по электронной почте, или другими вещами).
Cursor people = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while(people.moveToNext()) {
int nameFieldColumnIndex = people.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String contact = people.getString(nameFieldColumnIndex);
int numberFieldColumnIndex = people.getColumnIndex(PhoneLookup.NUMBER);
String number = people.getString(numberFieldColumnIndex);
if (contact.equals(myArr2_cs[item]))
{
Intent int_sms = new Intent(Intent.ACTION_SEND);
int_sms.setType("text/plain");
int_sms.putExtra(Intent.EXTRA_EMAIL , new String[]{number});
int_sms.putExtra(Intent.EXTRA_SUBJECT, "");
int_sms.putExtra(Intent.EXTRA_TEXT, "");
try {
startActivity(Intent.createChooser(int_sms, "Sending SMS.."));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(MainActivity.this, "No installed sms clients found", Toast.LENGTH_SHORT).show();
}
Намеренная часть предназначена для отправки электронной почты - она показывает пользователю список для выбора из клиентов, что я и хочу.
Вы видите, что есть две переменные для имени контакта и номера телефона.
Пользователь нажимает на название списка, затем нажимает на отправку смс, появляется всплывающий список для выбора из смс, электронной почты, Bluetooth и т. Д. Я выбираю перейти смс или любое другое установленное приложение смс из всплывающего списка, клиент появляется с поля (до, текст) пустые. Я хочу, чтобы номер отображался в поле sms формы sms. Поэтому, если пользователь нажимает «Том Джонс», а затем нажимает «Отправить смс», номер Тома Джонса уже должен быть заполнен в клиенте. Мой код этого не делает.
Я также пытался отправить смс с этими строками, но они привели к принудительному закрытию:
SmsManager sm = SmsManager.getDefault();
String number2 = "6508570720";//this should the number variable
sm.sendTextMessage(number2, null, "Test SMS Message", null, null);
OR
Intent sendIntent= new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", "smsBody");
sendIntent.putExtra("address", number);
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);