2014-06-24 39 views
2

我正在嘗試將語音名稱添加到特定聯繫人。更新聯繫人的拼音名稱 - android API級別19(4.4.3)

我做了以下內容:

ArrayList<android.content.ContentProviderOperation> ops = new ArrayList<android.content.ContentProviderOperation>(); 
      ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI) 
         .withSelection(Data._ID + "=?", new String[]{String.valueOf(ContactId)}) 
         .withValue(CommonDataKinds.StructuredName.PHONETIC_GIVEN_NAME, "mois") 
         .build()); 

      getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 

不過雖然我沒有錯誤 - 接觸不會被更新。

任何想法?

+0

愚蠢的問題,但只是爲了排除:權限? – snowdragon

+0

我擁有所有權限。爲什麼愚蠢? – MoShe

+0

您是否嘗試通過ContactId查詢並看到您獲得有效的光標? 'Cursor c = getContentResolver()。查詢(Data.CONTENT_URI, new String [] {Data._ID,Phone.NUMBER,Phone.TYPE,Phone.LABEL}, Data.CONTACT_ID +「=?」+「AND」 + Data.MIMETYPE +「='」+ Phone.CONTENT_ITEM_TYPE +「'」, new String [] {String.valueOf(contactId)},null);' – snowdragon

回答

1

好的,所以如果權限設置正確,更新其他東西的作品,我認爲這個問題在選擇(聯繫與raw_contact與數據)是錯誤的ID。

嘗試:

withSelection(Data.RAW_CONTACT_ID + "=?", new String[]{String.valueOf(RawContactId)})