Skip to content Skip to sidebar Skip to footer

Get Contact's Mobile, Work And Home Number In A String

I want to get the contact's(Saved in phonebook) mobile number, work number and home number. I want to set these numbers in my 3 edittext views. How to do this? Here is my code Curs

Solution 1:

try this link to get the contact details like phonenumber,name from phonebook. And check the answer posted by jon

public List<Person> getContactList(){
    ArrayList<Person> contactList = newArrayList<Person>();

    UricontactUri= ContactsContract.Contacts.CONTENT_URI;
    String[] PROJECTION = newString[] {
            ContactsContract.Contacts._ID,
            ContactsContract.Contacts.DISPLAY_NAME,
            ContactsContract.Contacts.HAS_PHONE_NUMBER,
    };
    StringSELECTION= ContactsContract.Contacts.HAS_PHONE_NUMBER + "='1'";
    Cursorcontacts= getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, PROJECTION, SELECTION, null, null);


    if (contacts.getCount() > 0)
    {
        while(contacts.moveToNext()) {
            PersonaContact=newPerson();
            intidFieldColumnIndex=0;
            intnameFieldColumnIndex=0;
            intnumberFieldColumnIndex=0;

            StringcontactId= contacts.getString(contacts.getColumnIndex(ContactsContract.Contacts._ID));

            nameFieldColumnIndex = contacts.getColumnIndex(PhoneLookup.DISPLAY_NAME);
            if (nameFieldColumnIndex > -1)
            {
                aContact.setName(contacts.getString(nameFieldColumnIndex));
            }

            PROJECTION = newString[] {Phone.NUMBER};
            finalCursorphone= managedQuery(Phone.CONTENT_URI, PROJECTION, Data.CONTACT_ID + "=?", newString[]{String.valueOf(contactId)}, null);
            if(phone.moveToFirst()) {
                while(!phone.isAfterLast())
                {
                    numberFieldColumnIndex = phone.getColumnIndex(Phone.NUMBER);
                    if (numberFieldColumnIndex > -1)
                    {
                        aContact.setPhoneNum(phone.getString(numberFieldColumnIndex));
                        phone.moveToNext();
                        TelephonyManager mTelephonyMgr;
                        mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
                        if (!mTelephonyMgr.getLine1Number().contains(aContact.getPhoneNum()))
                        {
                            contactList.add(aContact);  
                        }
                    }
                }
            }
            phone.close();
        }

        contacts.close();
    }

    return contactList;
}

AND PERSON CLASS

publicclassPerson {
    String myName = "";
    String myNumber = "";

    publicStringgetName() {
        return myName;
    }

    publicvoidsetName(String name) {
        myName = name;
    }    

    publicStringgetPhoneNum() {
        return myNumber;
    }

    publicvoidsetPhoneNum(Stringnumber) {
        myNumber = number;
    }
}

hope this helps you.

Post a Comment for "Get Contact's Mobile, Work And Home Number In A String"