2014-10-28 47 views
0

我試圖通過它的聯繫人ID更新我的聯繫人圖像,但是當我在三星S3上測試代碼時,它執行得很好,但設備上未做任何更改。在我的Nexus 4上,它完美地工作,任何人都知道發生了什麼。這是我的代碼:以編程方式更改聯繫人圖像適用於某些設備而不適用於其他人

public void setContactImage(Bitmap img, String contactUriId, String rawID) { 
    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
    try { 
     Bitmap bitmap = scaleDownBitmap(img, 500, getApplicationContext()); 
     ByteArrayOutputStream image = new ByteArrayOutputStream(); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, image); 

     ContentProviderOperation.Builder contentOp = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI); 
     contentOp.withSelection(ContactsContract.Data.CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + "=?", new String[]{String.valueOf(contactUriId), ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE}); 
     contentOp.withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, image.toByteArray()); 
     ops.add(contentOp.build()); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    try { 
     getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

凹凸

+0

數據行作爲IS_PRIMARY和檢查抓住部分我n s3設備。 – QuokMoon 2014-10-28 17:38:34

+0

我的log3中沒有錯誤s3 – user3443430 2014-10-28 17:40:11

+0

如果需要更多信息,請讓我知道。我一整天都被困在這裏! – user3443430 2014-10-28 19:49:19

回答

0

我想你最好寫照片的原始接觸顯示照片並將其標記爲初級和初級超強。

Add photo to a raw contact

馬克IS_SUPER_PRIMARY

IS_SUPER_PRIMARY

檢查PHOTO_ID下的照片是如何選擇聯繫人

Contacts

+0

你能告訴我一個你的意思是「檢查列下的PHOTO_ID」的代碼片段嗎? – user3443430 2014-10-31 14:45:22

+0

我的意思是讓你檢查下一個鏈接並向下滾動到Columns並檢查PHOTO_ID的描述。 – iago 2014-11-02 16:05:19

相關問題