android - How to load contact photo? -
i created app show 1 contact photo using his/her number , got nil result blank page , main.xml:
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".mainactivity" > <quickcontactbadge android:id="@+id/quickcontactbadge1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" /> </relativelayout> and mainactivity.java :
public class mainactivity extends activity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); string phonenumber = "xxxxxxxxxxx"; quickcontactbadge badge = (quickcontactbadge) findviewbyid(r.id.quickcontactbadge1); new quickcontacthelper(this, badge, phonenumber).addthumbnail(); } } and quickcontacthelper.java:
public class quickcontacthelper { private static final string[] photo_id_projection = new string[] { contactscontract.contacts.photo_id }; private static final string[] photo_bitmap_projection = new string[] { contactscontract.commondatakinds.photo.photo }; private final quickcontactbadge badge; private final string phonenumber; private final contentresolver contentresolver; public quickcontacthelper(final context context, final quickcontactbadge badge, final string phonenumber) { this.badge = badge; this.phonenumber = phonenumber; contentresolver = context.getcontentresolver(); } public void addthumbnail() { final integer thumbnailid = fetchthumbnailid(); if (thumbnailid != null) { final bitmap thumbnail = fetchthumbnail(thumbnailid); if (thumbnail != null) { badge.setimagebitmap(thumbnail); } } } private integer fetchthumbnailid() { final uri uri = uri.withappendedpath( contactscontract.commondatakinds.phone.content_filter_uri, uri.encode(phonenumber)); final cursor cursor = contentresolver.query(uri, photo_id_projection, null, null, contactscontract.contacts.display_name + " asc"); seek { integer thumbnailid = null; if (cursor.movetofirst()) { thumbnailid = cursor.getint(cursor .getcolumnindex(contactscontract.contacts.photo_id)); } homecoming thumbnailid; } { cursor.close(); } } final bitmap fetchthumbnail(final int thumbnailid) { final uri uri = contenturis.withappendedid( contactscontract.data.content_uri, thumbnailid); final cursor cursor = contentresolver.query(uri, photo_bitmap_projection, null, null, null); seek { bitmap thumbnail = null; if (cursor.movetofirst()) { final byte[] thumbnailbytes = cursor.getblob(0); if (thumbnailbytes != null) { thumbnail = bitmapfactory.decodebytearray(thumbnailbytes, 0, thumbnailbytes.length); } } homecoming thumbnail; } { cursor.close(); } } } and permission read contacts:
<uses-permission android:name="android.permission.read_contacts"/> now what's error while there no exception no error , , getting blank page how handle error ? , result :
android
No comments:
Post a Comment