如何在android中删除联系人?

时间:2011-01-18 06:57:49

标签: android contacts contact

我想删除名称为Leo的用户名。所以我将删除查询如下

    int i = getContentResolver().delete(Contacts.CONTENT_URI, Contacts.DISPLAY_NAME +"= 'Leo'",null);
    System.out.println("rows deleted "+i);
but it returns "rows deleted 0"

它有什么问题。

编辑: 以上操作无效,因为该字段仅使用Contacts.CONTENT_URI进行读取 您可以看到使用以下URI。 http://developer.android.com/reference/android/provider/ContactsContract.Contacts.html

3 个答案:

答案 0 :(得分:1)

http://developer.android.com/resources/samples/SampleSyncAdapter/index.html

在上面的链接中,我可以找到解决方案。我可以完全删除联系人。

问题与同步适配器有关。

答案 1 :(得分:1)

要从contactDB中删除所选联系人,我们可以使用以下代码。

ContentResolver cr = getContentResolver();
                String where = ContactsContract.Data.DISPLAY_NAME + " = ? ";
                String[] params = new String[] {nam};

                ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
                ops.add(ContentProviderOperation.newDelete(ContactsContract.RawContacts.CONTENT_URI)
                        .withSelection(where, params)
                        .build());
                try {
                    cr.applyBatch(ContactsContract.AUTHORITY, ops);
                } catch (RemoteException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (OperationApplicationException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

答案 2 :(得分:0)

我想你应该在Android清单中说明WRITE_CONTACTS的权限。查看http://developer.android.com/reference/android/Manifest.permission.html