获取联系人头像
public byte[] getPhoto(String
people_id) {
String photo_id = null;
String selection1 =
ContactsContract.Contacts._ID + " = " + people_id;
Cursor cur1 =
getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null,
selection1, null,
null);
if (cur1.getCount() > 0)
{
cur1.moveToFirst();
photo_id =
cur1.getString(cur1
.getColumnIndex(ContactsContract.Contacts.PHOTO_ID));
//System.out.println("photo_id:"
+ photo_id);
}
String[] projection = new String[]
{
ContactsContract.Data.DATA15
};
String selection =
ContactsContract.Data._ID + " = " + photo_id;
Cursor cur =
getContentResolver().query(
ContactsContract.Data.CONTENT_URI, projection,
selection, null,
null);
cur.moveToFirst();
byte[] contactIcon =
cur.getBlob(0);
System.out.println("conTactIcon:" + contactIcon);
if
(contactIcon == null) {
return null;
} else {
return
contactIcon;
}
}
以下代码将字节数组转化成Bitmap对象,然后再ImageView中显示出来
private
ImageView image;
byte[] photo = getPhoto(contactId);
Bitmap map =
BitmapFactory.decodeByteArray(photo,
0,
photo.length);
image.setImageBitmap(map);
people_id) {
String photo_id = null;
String selection1 =
ContactsContract.Contacts._ID + " = " + people_id;
Cursor cur1 =
getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null,
selection1, null,
null);
if (cur1.getCount() > 0)
{
cur1.moveToFirst();
photo_id =
cur1.getString(cur1
.getColumnIndex(ContactsContract.Contacts.PHOTO_ID));
//System.out.println("photo_id:"
+ photo_id);
}
String[] projection = new String[]
{
ContactsContract.Data.DATA15
};
String selection =
ContactsContract.Data._ID + " = " + photo_id;
Cursor cur =
getContentResolver().query(
ContactsContract.Data.CONTENT_URI, projection,
selection, null,
null);
cur.moveToFirst();
byte[] contactIcon =
cur.getBlob(0);
System.out.println("conTactIcon:" + contactIcon);
if
(contactIcon == null) {
return null;
} else {
return
contactIcon;
}
}
以下代码将字节数组转化成Bitmap对象,然后再ImageView中显示出来
private
ImageView image;
byte[] photo = getPhoto(contactId);
Bitmap map =
BitmapFactory.decodeByteArray(photo,
0,
photo.length);
image.setImageBitmap(map);
===============通过代码设置Android联系人的头像
private final static boolean OldSDK = (System.getSDKVersionNumber()< 5 )? true :
false;public static void setPersonPhotoBytes(Context context,byte[] b,
long persionID,
boolean Sync)
{if (OldSDK){Uri myPerson = ContentUris.withAppendedId(People.CONTENT_URI,
persionID);People.setPhotoData(context.getContentResolver(), myPerson,
b);if (! Sync){ContentValues values = new ContentValues();values.put("_sync_dirty", 0);context.getContentResolver().update(myPerson, values,
null, null);}}elsesetContactPhoto5(context.getContentResolver(), b, persionID,
Sync);}private static void setContactPhoto5(ContentResolver c, byte[]
bytes,long personId,
boolean Sync)
{ContentValues values = new ContentValues();int photoRow = -1;String where ="raw_contact_id = " +
personId + " AND mimetype
='vnd.android.cursor.item/photo'";Cursor cursor = c.query(u, null, where,
null, null);int idIdx = cursor.getColumnIndexOrThrow("_id");if (cursor.moveToFirst()) {photoRow = cursor.getInt(idIdx);}cursor.close();values.put("raw_contact_id",
personId);values.put("is_super_primary",
1);values.put("data15",
bytes);values.put("mimetype","vnd.android.cursor.item/photo");if (photoRow >= 0) {c.update(u, values, " _id= " + photoRow,
null);} else {c.insert(u, values);}if (! Sync){u = Uri.withAppendedPath(Uri.parse("content://com.android.contacts/raw_contacts"),
String.valueOf(personId));values = new ContentValues();values.put("dirty", 0);c.update(u, values, null, null);}}
id 博主 = [[KILONET.CNBLOGS.COM alloc] initWithValue:@"天堂向右,我依然向左"
网名:@"老舟"
兴趣:@"影音,阅读"
动态:@"系统架构设计,Android通信模块开发"
网址:@"http://kilonet.cnblogs.com"
签名:@"--------------------------------------------------
Stay Hungry , Stay Foolish
求 知 若 渴,处 事 若 愚
--------------------------------------------------"
]; // Never Release

浙公网安备 33010602011771号