我已通过以下代码向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上,但是当我要通过“删除联系人”选项手动删除它时,它不会从模拟器中删除。
如果我在其上编辑某些内容,则只删除它。
如何直接从菜单中删除它?
提前致谢...
答案 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。这可能会对你有所帮助。