传递 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 中发送短信。在调用之前,您不知道谁被选中,因此您无法获得他们的号码。