получить номер телефона из списка контактов - PullRequest
0 голосов
/ 28 июня 2018

Мне нужно получить контактный номер от контактов

Я использую приведенный ниже код для получения контактного номера в onCreate:

 buttonSelectContact.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
            startActivityForResult(intent, PICK_CONTACT);

        }
    });

и используйте приведенный ниже код в onActivationResult:

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {

     Uri contactData = data.getData();
            Cursor c = managedQuery(contactData, null, null, null, null);
            if (c.moveToFirst()) {
                String name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
                String number = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.HAS_PHONE_NUMBER));
                etName.setText(name);
                etNumber.setText(number);
}

etName установлено правильно, но etNumber неверно, значения 0 или 1 внутри него как установить контактный номер в etNumber ??

1 Ответ

0 голосов
/ 28 июня 2018

вот как у меня это в onActivityResult, он получает все номера телефонов от контакта, который находится во фрагменте, поэтому вам придется убрать getActivity (), если вы делаете это из действия

Uri contactData = data.getData();
            Cursor c = getActivity().getContentResolver().query(contactData, null, null, null, null);
            if (c.moveToFirst()) {
                String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                textcontact.setText(name + "\n");
                customerName = name;
                String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
                String hasNumber = c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
                String num = "";
                if (Integer.valueOf(hasNumber) == 1) {
                    Cursor numbers = getActivity().getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
                    while (numbers.moveToNext()) {
                        num = numbers.getString(numbers.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                       textcontact.append(num + "\n");
                       phoneNumbers.add(num);
                    }
                }
            }
...