Как удалить контакт в Android 2.1 - PullRequest
0 голосов
/ 26 марта 2010

Я добавил один контакт в Android с помощью следующего кода.

 ContentValues values = new ContentValues();
 Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values);
 long rawContactId = ContentUris.parseId(rawContactUri);

 values.clear();
 values.put(Data.RAW_CONTACT_ID, rawContactId);
 values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
 values.put(StructuredName.DISPLAY_NAME, "Mike Sullivan");
 getContentResolver().insert(Data.CONTENT_URI, values);

Он отображается в эмуляторе 2.1, но когда я собираюсь удалить его вручную с помощью опции «удалить контакт», он не удаляется из эмулятора.

Если я отредактирую что-нибудь на нем, то только оно удалит.

Как я могу напрямую удалить его из меню?

Заранее спасибо ...

Ответы [ 4 ]

0 голосов
/ 19 января 2012

Используйте этот метод для проверки версии SDK и получения содержимого Uri для контактов. После этого вы можете вставить контакты с этим новым Content Uri,

static 
{
int sdk=new Integer(Build.VERSION.SDK).intValue();

if (sdk>=5) {
  try {
    Class<?> clazz=Class.forName("android.provider.ContactsContract$Contacts");

    CONTENT_URI=(Uri)clazz.getField("CONTENT_URI").get(clazz);
  }
  catch (Throwable t) {
    Log.e("PickDemo", "Exception when determining CONTENT_URI", t);
  }
}
else {
  CONTENT_URI=Contacts.People.CONTENT_URI;
}
}

См. Примеры использования CommonsWare для контактов. Это может вам помочь.

0 голосов
/ 27 марта 2010

Вам необходимо сохранить еще одно поле: «Имя» или «Фамилия».Вы можете проверить это вручную, сохранив контакты.Сначала попытайтесь сохранить только номер телефона, а затем сохраните контакты с именем и номером.

0 голосов
/ 19 января 2012

Simple, удалить файл .db, все контакты были удалены. android создаст новый файл автоматически.

путь для .db: данные / данные / com.android.providers.contacts / базы данных / contacts.db

0 голосов
/ 26 марта 2010

Не могли бы вы использовать приведенный ниже код, чтобы добавить контакт. Это не повлияет на ваш эмулятор для удаления контакта из меню без его редактирования.

import android.provider.Contacts.People; 

public void addvaluestocontent()
{
    ContentValues values = new ContentValues();

    values.put(People.NAME, "Abraham Lincoln");
    values.put(People._ID, "1");
    values.put(People.NUMBER, "23333");

    Uri uri = getContentResolver().insert(People.CONTENT_URI, values);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...