如何删除android 2.1中的联系人

时间:2010-03-26 05:31:42

标签: android android-emulator

我已通过以下代码向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 :(得分:0)

请您使用以下代码添加联系人。这不会影响您的模拟器从菜单中删除联系人而不进行相同的编辑。

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);
}

答案 1 :(得分:0)

您必须再保存一个字段,“给定名称”或“姓氏”。您可以通过保存联系人手动测试它。首先尝试保存仅限manaully的号码,然后保存名称和号码的联系人。

答案 2 :(得分:0)

简单,删除.db文件删除所有联系人。和android将自动创建新文件。

.db的

路径是: 数据/数据/ com.android.providers.contacts /数据库/ contacts.db

答案 3 :(得分:0)

使用此方法检查SDK版本并获取联系人内容Uri。之后,您可以使用此新内容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;
}
}

请参阅联系人内容Uri的CommonsWare Examples。这可能会对你有所帮助。