Я знаю, как добавлять/редактировать адрес электронной почты в контакте программно, но я не знаю, как получить/изменить SIP_address/Internet_call в контакте, я прочитал много документации на его основе, включая Modifying contact information , Пожалуйста, помогите мне реализовать этоModify SipAddress Programmatically
2
A
ответ
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.
Привет, извините, что вернусь поздно. Я добавил ваш код к вставке (отредактировал несколько строк) и обновил часть кода, и это то, что получается, когда я его отлаживал. И получил предупреждение «Контакты остановились» когда я проверяю обновленный контакт. Он переходит к блоку кода «вставить sip address», даже если у контакта уже есть адрес sip. Я считаю, что selectioArg не подходит для обновления SIP-адреса в данном проекте. –
А, теперь я вижу, что вы проверили этот ответ, о котором я говорил раньше, хорошо. Я не могу проверить код сейчас, потому что я нахожусь в ОС без андроида sdk, но он должен работать. Вы сказали, что можете изменить некоторые другие данные, такие как адрес электронной почты с тем же кодом? –
Да .. Я просто заменил Email.something на SIpAddress.something. –