2013-11-20 116 views

回答

1

更改SIP地址與更改聯繫人的電子郵件地址完全相同。只需使用ContactsContract.CommonDataKinds.SipAddress而不是ContactsContract.CommonDataKinds.Email

小咖啡預例如:

import java.util.ArrayList; 
import android.content.ContentProviderOperation; 
import android.provider.ContactsContract; 
import android.provider.ContactsContract.Data; 
import android.provider.ContactsContract.CommonDataKinds.SipAddress; 
//[...] 
private String mSipAddress = "cecin\'estpasunesipaddress"; 
//[...] 
    try { 
     ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 

     ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI) 
      .withSelection(Data.RAW_CONTACT_ID + " = ?", new String[] {mRawContactId}) 
      .withSelection(Data._ID + " = ?", new String[] {mDataId}) 
      .withValue(Data.MIMETYPE, SipAddress.CONTENT_ITEM_TYPE) 
      .withValue(Data.DATA1, mSipAddress) 
      .withValue(SipAddress.TYPE, SipAddress.TYPE_HOME) 
      .build()); 
     getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
} 
//[...] 

this GitHub的倉庫中如何獲取此處未聲明的區域的例子。我從this得到答案。 Relevant documentation

+0

嘿抱歉讓晚歸.. 我加入你的代碼插入(幾行編輯)和代碼的更新部分,這是什麼讓我調試它,並獲得了「隱形眼鏡已停止」警報當我檢查更新的聯繫人時。即使聯繫人已經有sip地址,它也會「插入sip地址」代碼塊。 我認爲selectioArgs在給定項目中更新SIP地址是不正確的。 –

+0

啊,我現在看到你檢查了我之前提到的答案,很好。我現在無法測試代碼,因爲我在沒有android sdk的操作系統上,但它應該可以工作。你是否說過可以用相同的代碼更改其他一些數據,如電子郵件地址? –

+0

是的,我只是把Email.something換成了SIpAddress.something。 –

相關問題