Я знаю, как добавить/редактировать адрес электронной почты в контакте программно, но я не знаю, как получить/изменить SIP_адрес/Интернет_вызов в контакте, я прочитал много документации, основанной на этом, включая Изменение контактной информации. Пожалуйста, помогите мне реализовать это
Изменить SipAddress программно
Ответы (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);
}
//[...]
См. это Репозиторий GitHub для примера того, как получить поля, которые здесь не объявлены. Я получил его из этого ответа. Соответствующая документация.
person
Sietse van der Molen
schedule
04.12.2013
Эй, извините за опоздание. Я добавил ваш код во вставку (отредактировано несколько строк) и обновил часть кода, и это то, что получается, когда я его отлаживаю. Полученные контакты перестали предупреждать, когда я проверяю обновленный контакт. Он вставляет блок кода sip-адреса, даже если у контакта уже есть sip-адрес. Я считаю, что selectioArgs не подходит для обновления SIP-адреса в данном проекте.
- person Harsh Vardhan; 05.12.2013
Ах, теперь я вижу, что вы проверили тот ответ, о котором я упоминал ранее, хорошо. Я не могу проверить код сейчас, потому что у меня ОС без Android SDK, но он должен работать. Вы сказали, что можете изменить некоторые другие данные, такие как адрес электронной почты, с тем же кодом?
- person Sietse van der Molen; 05.12.2013
Да... Я просто заменил Email.something на SIpAddress.something.
- person Harsh Vardhan; 07.12.2013