2013-11-20 1 views
2

Я знаю, как добавлять/редактировать адрес электронной почты в контакте программно, но я не знаю, как получить/изменить SIP_address/Internet_call в контакте, я прочитал много документации на его основе, включая Modifying contact information , Пожалуйста, помогите мне реализовать этоModify SipAddress Programmatically

ответ

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.

+0

Привет, извините, что вернусь поздно. Я добавил ваш код к вставке (отредактировал несколько строк) и обновил часть кода, и это то, что получается, когда я его отлаживал. И получил предупреждение «Контакты остановились» когда я проверяю обновленный контакт. Он переходит к блоку кода «вставить sip address», даже если у контакта уже есть адрес sip. Я считаю, что selectioArg не подходит для обновления SIP-адреса в данном проекте. –

+0

А, теперь я вижу, что вы проверили этот ответ, о котором я говорил раньше, хорошо. Я не могу проверить код сейчас, потому что я нахожусь в ОС без андроида sdk, но он должен работать. Вы сказали, что можете изменить некоторые другие данные, такие как адрес электронной почты с тем же кодом? –

+0

Да .. Я просто заменил Email.something на SIpAddress.something. –