2
我知道如何以編程方式在聯繫人中添加/編輯電子郵件地址,但我不知道如何檢索/修改聯繫人中的SIP_address/Internet_call,我已閱讀了許多基於它的文檔,其中包括Modifying contact information 。請幫我執行此操作以編程方式修改SipAddress
我知道如何以編程方式在聯繫人中添加/編輯電子郵件地址,但我不知道如何檢索/修改聯繫人中的SIP_address/Internet_call,我已閱讀了許多基於它的文檔,其中包括Modifying contact information 。請幫我執行此操作以編程方式修改SipAddress
更改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。
嘿抱歉讓晚歸.. 我加入你的代碼插入(幾行編輯)和代碼的更新部分,這是什麼讓我調試它,並獲得了「隱形眼鏡已停止」警報當我檢查更新的聯繫人時。即使聯繫人已經有sip地址,它也會「插入sip地址」代碼塊。 我認爲selectioArgs在給定項目中更新SIP地址是不正確的。 –
啊,我現在看到你檢查了我之前提到的答案,很好。我現在無法測試代碼,因爲我在沒有android sdk的操作系統上,但它應該可以工作。你是否說過可以用相同的代碼更改其他一些數據,如電子郵件地址? –
是的,我只是把Email.something換成了SIpAddress.something。 –