Как отправить смс, используя контакты в телефонной книге вместо записи номера телефона? - PullRequest
2 голосов
/ 01 ноября 2011

Я отправляю смс человеку, написав его номер телефона, но теперь я хочу добавить функцию автоматического получения номера из контактов телефонной книги, выбрав контакт отправителя. Кто-нибудь может дать мне представление о том, как добавить эту функцию в мое приложение??Спасибо в avance.

Ответы [ 2 ]

2 голосов
/ 18 июня 2012

Это можно сделать следующим образом:

  1. Загрузка контактов из вашей телефонной книги (нажатием button или нажатием на EditText, который вы используете для сбора номера телефона)

// Выбор контактов при нажатии

@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. Метод, который фактически получает все контакты

Это загрузит все контакты, когда пользователь нажимает на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 голос
/ 01 ноября 2011

Я думаю, что сначала вам нужно получить доступ к контактам, хранящимся на телефоне, через Контакты API .Затем получите номер телефона из необработанного контакта и используйте его для отправки своего смс.

...