I want to write a short app for getting some info from contacts, the
first list screen i have should display the user Image (or an Image
from resources if no such image exists) an the user display name.
The problem is i don't seem to find a query that will provide me with
the display name and a user id AND the image URI in the same query.
moreover I'm aware of the fact that if the user has no image and the
URI is empty or null i will most likely to get an exception while the
adapter calls setViewImage().
Is there a simple way around it or should i override the
setViewImage() or bindView() methods ?
Also about the query , any chance i can make a single query for
contact URI, _ID, contact_id and display name ?
my current queries:
To get the contacts :
private Cursor getContacts() {
Uri uri = ContactsContract.Data.CONTENT_URI;
String[] projection = new String[]
{ContactsContract.Data._ID,ContactsContract.Data.CONTACT_ID,
ContactsContract.Data.DISPLAY_NAME };
String selection = ContactsContract.Data.MIMETYPE + " = ?";
String[] selectionArgs =
{ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE};
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + "
ASC";
return managedQuery(uri, projection, selection, selectionArgs,
sortOrder);
}
if i have a contact id and want the image:
int _id = m_cursor.getColumnIndex(ContactsContract.Contacts._ID);
//try to retrieve the photo, if exists.
Uri photoUri =
ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,
m_cursor.getLong(_id));
InputStream is =
ContactsContract.Contacts.openContactPhotoInputStream(m_context.getContentResolver(),
photoUri);
here i get from a cursor with _ID column the id and then creating the
uri, i know i can get a row number but i'm not familiar enough with
contentProvider to know how to join tables to get it all in one query
(if even possible).
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
To unsubscribe, reply using "remove me" as the subject.