我知道如何以编程方式在联系人中添加/编辑电子邮件地址,但是我不知道如何在联系人中检索/修改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

10-07 20:03