3
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
    ops.clear(); 

    ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) 
      .withSelection(Data._ID + "=?", new String[]{String.valueOf(id)}) 
      .withValue(Email.DATA, "[email protected]") 
      .build()); 

    try 
    { 
     context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
    } 

日誌不顯示任何東西。但電子郵件沒有更新。有誰知道爲什麼?爲什麼我無法更新android中的電子郵件地址?

轉換成字符串的OPS如下:

[mType: 2, mUri: content://com.android.contacts/data, mSelection: _id=?, mExpectedCount: null, mYieldAllowed: false, mValues: [email protected], mValuesBackReferences: null, mSelectionArgsBackReferences: null] 
+0

你嘗試使用Log.d( '標籤',VALUEasSTRING);檢查你的價值觀? – daniel

+0

你的意思是哪個值?該ID?如果是的話 –

+0

實際上所有的值,但聽起來像你已經試過這 – daniel

回答

0

首先,你有一個try沒有catch,這可以解釋爲什麼你沒有看到在日誌中的任何錯誤。

其次,從我可以在文檔中看到的,我想你應該這樣寫的更好吧:withValue不串裏面

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
ops.clear(); 

ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) 
     .withSelection(ContactsContract.Data.CONTACT_ID + "=?", 
         new String[] {String.valueOf(id)}) 
     .withValue(ContactsContract.CommonDataKinds.Email.DATA, "[email protected]") 
     .build()); 

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

嘗試使用,但字符串數組。

.withValue(ContactsContract.CommonDataKinds.Email.DATA, emails) 

其中

String[] emails = {"Email Name<[email protected]>"}; 
+0

這只是給了一個錯誤,悲傷。 – Jonah

相關問題