在我的应用程序中,有包含手机通讯录的列表。当用户点击联系人时,他可以从菜单中选择发送短信给联系人(或电子邮件或其他东西)。Android发送短信
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();
}
的目的部分是专为发送电子邮件 - 它显示用户清单由客户选择,这是我想要的。 您会看到联系人名称和电话号码有两个变量。 用户点击列表中的名称,然后点击发送短信,弹出列表出现可以选择短信,电子邮件,蓝牙等。我选择从短信列表中选择短信或任何其他安装的短信应用程序,客户端出现字段(to,text)为空。我希望号码出现在短信窗体的短信框中。因此,如果用户点击“汤姆琼斯”,然后点击“发送短信”,汤姆琼斯的号码应该已经填写在客户端。我的代码不这样做。
我也试图与这些线路发送短信,但他们造成了强制关闭:
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);
我做类似的东西在这里! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42 2013-01-22 07:51:26