Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid contacts Display Name and Phone Number(s) in single database query?
    primarykey
    data
    text
    <p>I'm trying to obtain a list of contacts from the native database with their Display Name and Phone Number (any or all). There are many methods for obtaining this information with several queries to the phone's database, but this introduces considerable overhead.</p> <p>Here is the query I've been working on, but it results in </p> <pre><code>Uri uri = ContactsContract.Contacts.CONTENT_URI; String[] projection = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER}; String selection = ContactsContract.Contacts.HAS_PHONE_NUMBER + " = '1'"; String[] selectionArgs = null; String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; Cursor people = getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder); int index_id = people.getColumnIndex(ContactsContract.Contacts._ID); int indexName = people.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); int indexNumber = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); people.moveToFirst(); do { String _id = people.getString(index_id); String name = people.getString(indexName); String number = people.getString(indexNumber); // Do work... } while (people.moveToNext()); </code></pre> <p>And here's the resulting error.</p> <pre><code>E/AndroidRuntime(21549): Caused by: java.lang.IllegalArgumentException: Invalid column data1 E/AndroidRuntime(21549): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:144) E/AndroidRuntime(21549): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114) E/AndroidRuntime(21549): at android.content.ContentProviderProxy.bulkQueryInternal(ContentProviderNative.java:372) E/AndroidRuntime(21549): at android.content.ContentProviderProxy.query(ContentProviderNative.java:408) E/AndroidRuntime(21549): at android.content.ContentResolver.query(ContentResolver.java:264) </code></pre> <p>Thoughts? I believe a join may be needed to get all the columns in a single query.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload