我知道如何以编程方式在联系人中添加/编辑电子邮件地址,但是我不知道如何在联系人中检索/修改SIP_address / Internet_call,我已经阅读了很多基于它的文档,包括Modifying contact information。请帮我实现这个
最佳答案
更改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。