3

我想删除名为 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

4

3 回答 3

1

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

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

问题与同步适配器有关。

于 2011-01-25T06:03:04.080 回答
1

要从联系人数据库中删除选定的联系人,我们可以使用以下代码。

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();
                }
于 2012-05-18T04:53:45.243 回答
0

我想您应该在 Android 清单中声明对WRITE_CONTACTS. 查看http://developer.android.com/reference/android/Manifest.permission.html

于 2011-01-18T07:18:35.123 回答