我对联系簿上的基本操作有问题,看起来官方的例子对我不起作用。其中之一:
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValue(Data.RAW_CONTACT_ID, id)
.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
.withValue(Phone.NUMBER, "1-800-GOOG-411")
.withValue(Phone.TYPE, Phone.TYPE_CUSTOM)
.withValue(Phone.LABEL, "free directory assistance")
.build());
这应该添加具有给定ID的联系人,但在模拟器中运行此代码后,我没有获得任何新联系人。
我将非常感谢任何指导性答案或教程的链接。
答案 0 :(得分:1)
您应具有以下权限:
<uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
你应该有代码(在你的代码之后):
try {
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
} catch (Exception e) {
e.printStackTrace();
}
这将尝试插入/更新联系人
答案 1 :(得分:1)
只需为您的应用启用此代码工具,然后尝试删除特定联系人列表,
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?" , new String[] { contactsId(your) }, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
try {
String lookupKey = cur .getString(cur .getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath( ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
cr.delete(uri, null, null);
setFinish();
} catch (Exception e) {
e.getStackTrace();
}
}
}