通过代码设置Android联系人的头像

来源:互联网 发布:机顶盒看电视直播软件 编辑:程序博客网 时间:2024/05/18 00:20

privatefinal static boolean OldSDK = (System.getSDKVersionNumber()< 5)? true: false;
publicstatic void setPersonPhotoBytes(Context context,byte[] b, longpersionID, booleanSync) {
        if(OldSDK){
          Uri myPerson = ContentUris.withAppendedId(People.CONTENT_URI, persionID);
          People.setPhotoData(context.getContentResolver(), myPerson, b);
          if(! Sync){
            ContentValues values = newContentValues();
            values.put("_sync_dirty",0);
            context.getContentResolver().update(myPerson, values, null,null);
          }
        }
        else
            setContactPhoto5(context.getContentResolver(), b, persionID, Sync);
    }
 
    privatestatic void setContactPhoto5(ContentResolver c, byte[] bytes,longpersonId, booleanSync) {
        ContentValues values = newContentValues();
        Uri u = Uri.parse("content://com.android.contacts/data");
        intphotoRow = -1;
        String where ="raw_contact_id = " + personId + " AND mimetype ='vnd.android.cursor.item/photo'";
        Cursor cursor = c.query(u, null, where, null,null);
        intidIdx = 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 = newContentValues();
            values.put("dirty",0);
            c.update(u, values, null,null);
        }
    }
  

原创粉丝点击