以编程方式修改SipAddress

时间:2013-11-20 13:18:07

标签: android android-contacts android-cursor

我知道如何以编程方式在联系人中添加/编辑电子邮件地址,但我不知道如何在联系人中检索/修改SIP_address / Internet_call,我已经阅读了很多基于它的文档,包括{{3} }。请帮我实现这个

1 个答案:

答案 0 :(得分: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