如何使用电话簿中的联系人发送短信而不是写电话号码?

时间:2011-11-01 11:14:41

标签: android sms android-contacts

我正在通过写一个电话号码向某人发送短信,但现在我想通过选择发件人的联系人来添加从电话簿联系人自动获取号码的功能。任何人都可以告诉我如何在我的应用程序中添加该功能?谢谢你。

2 个答案:

答案 0 :(得分:2)

这可以按如下方式完成:

  1. 从电话簿加载联系人(button点击或点击您用来收集电话号码的EditText
  2. //点击时选择联系人

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(reqCode, resultCode, data);
        switch (reqCode) {
            case (1) :
                getContactInfo(data);
                edittext.setText(contactName); // Set text on your EditText
                break;
        }
    }
    
    1. 实际获取所有联系人的方法
    2. 当用户点击EditText时,这会加载所有联系人。

      public void getContactInfo(Intent intent) {
          String phoneNumber = null;
          String name = null;
      
          Cursor cursor = managedQuery(intent.getData(), null, null, null, null);
          while (cursor.moveToNext()) {
              String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
              name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
      
              String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
      
              if (hasPhone.equalsIgnoreCase("1"))
                  hasPhone = "true";
              else
                  hasPhone = "false";
      
              if (Boolean.parseBoolean(hasPhone)) {
                  Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                          ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
                  while (phones.moveToNext()) {
                      phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
      
                  }// end while
                  phones.close();
              }// end if
          }// end while
          return arr;
      }// end class
      

答案 1 :(得分:1)

我认为您首先需要通过Contacts API访问手机上存储的联系人。然后从原始联系人中检索电话号码并使用它来发送短信。