传递 phone 号码作为我的消息目的地
Pass phone number as destination of my message
我正在尝试传递从我设备的联系人列表中选择的 phone 号码。我有 edittext 来写我的消息,然后单击一下我想从列表中选择一个号码并同时发送。访问 phone 号码让我感到困惑,而不是访问名称本身。(我不需要名称,我想将我的消息发送到 him/her,因为他们有 phone 号码。)我有 java.lang.IllegalArgumentException:sms.sendTextMessage**
的目的地地址 无效
public void Send(View view){
String myMsg = myMessage.getText().toString();
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(no,null,myMsg,null,null);//"8044842795
}
String no = "";
@Override
protected void onActivityResult(int reqCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(reqCode, resultCode, data);
if(reqCode == PICK_CONTACT) {
if(resultCode == ActionBarActivity.RESULT_OK) {
Uri contactData = data.getData();
Cursor cur = getContentResolver().query(contactData, null, null, null, null);
ContentResolver contect_resolver = getContentResolver();
if (cur.moveToFirst()) {
String id = cur.getString(cur.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
Cursor phoneCur = contect_resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id }, null);
if (phoneCur.moveToFirst()) {
no = phoneCur.getString(phoneCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
}
}
}
}
您需要在onActivityResult 中发送短信。在调用之前,您不知道谁被选中,因此您无法获得他们的号码。
我正在尝试传递从我设备的联系人列表中选择的 phone 号码。我有 edittext 来写我的消息,然后单击一下我想从列表中选择一个号码并同时发送。访问 phone 号码让我感到困惑,而不是访问名称本身。(我不需要名称,我想将我的消息发送到 him/her,因为他们有 phone 号码。)我有 java.lang.IllegalArgumentException:sms.sendTextMessage**
的目的地地址 无效 public void Send(View view){
String myMsg = myMessage.getText().toString();
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(no,null,myMsg,null,null);//"8044842795
}
String no = "";
@Override
protected void onActivityResult(int reqCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(reqCode, resultCode, data);
if(reqCode == PICK_CONTACT) {
if(resultCode == ActionBarActivity.RESULT_OK) {
Uri contactData = data.getData();
Cursor cur = getContentResolver().query(contactData, null, null, null, null);
ContentResolver contect_resolver = getContentResolver();
if (cur.moveToFirst()) {
String id = cur.getString(cur.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
Cursor phoneCur = contect_resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id }, null);
if (phoneCur.moveToFirst()) {
no = phoneCur.getString(phoneCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
}
}
}
}
您需要在onActivityResult 中发送短信。在调用之前,您不知道谁被选中,因此您无法获得他们的号码。