【问题标题】:get phone number from contactlist从联系人列表中获取电话号码
【发布时间】:2018-06-27 22:09:59
【问题描述】:

我需要从联系人中获取联系电话

我使用以下代码在 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);

        }
    });

并在 onAcivityResult 中使用以下代码:

 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中设置联系人号码??

【问题讨论】:

    标签: java android contacts contact


    【解决方案1】:

    这是我在 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);
                        }
                    }
                }
    

    【讨论】:

      猜你喜欢
      • 2017-04-13
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 2015-01-24
      • 2017-06-22
      • 1970-01-01
      • 2015-12-16
      相关资源
      最近更新 更多