Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Contact List

Can anyone shed a light on how to get contact list from android?.

I just want to get the same list as in the dialer app. But im getting a lots of contacts that are not on the dialer list with the code below.

ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(Contacts.People.CONTENT_URI, null, null, null, Contacts.ContactMethods.DEFAULT_SORT_ORDER);
startManagingCursor(cursor);

Thanks in advance.

like image 887
Christian Avatar asked Dec 13 '09 18:12

Christian


People also ask

Where are my contacts stored?

Android Internal Storage If contacts are saved in the internal storage of your Android phone, they will be stored specifically in the directory of /data/data/com. Android. providers. contacts/databases/contacts.

How do I show my contact list on my phone?

Open your Contacts app and tap the Options button (three dots), and select Contacts Manager. On the next screen, tap on Contacts to display from the menu. Next, if you only want contacts with a phone number, tap on Phone. You can also customize it by selecting just the Google account you want to see contacts from.

What is a contact list on a phone?

What are contacts? Your contacts list is one of the most important things on your device. It's where you'll save contact information for the people you know, including their names, phone numbers, and email addresses. This information isn't just for your records—it's also used by other apps.


2 Answers

Try this snippet:

import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.widget.SimpleCursorAdapter;

public class ContactList extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[] {Phone._ID, Phone.DISPLAY_NAME, Phone.NUMBER}, null, null, null);

        startManagingCursor(cursor);

        String[] from = new String[] { Phone.DISPLAY_NAME, Phone.NUMBER};

        int[] to = new int[] { R.id.name_entry, R.id.number_entry};

        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.list_entry, cursor, from, to);
        this.setListAdapter(adapter);
    }
}

XML file is:

list_entry.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="6dip">
        <TextView
            android:id="@+id/name_entry"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:gravity="center_vertical"
        android:textSize="18dip"/>
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:id="@+id/number_entry"
            android:singleLine="true"
            android:ellipsize="marquee"
        android:textSize="18dip"/>
    </LinearLayout>
like image 127
Vikas Patidar Avatar answered Sep 20 '22 13:09

Vikas Patidar


What you have seems fine. Could you elaborate on "getting a lots of contacts that are not on the dialer list"? Is it that Android is making up people? Or is it that you are seeing people with email addresses but no phone numbers (who therefore might not show up in the Dialer)?

Note that Contacts.People is for Android 1.6 and below. That provider is deprecated starting with Android 2.0, replaced by the ContactsContract set of providers.

like image 24
CommonsWare Avatar answered Sep 20 '22 13:09

CommonsWare