I am writing a demo app in which I want to bootstrap the contacts
database each time I run my app.  I have successfully managed to
insert contacts into the people, phones, and contact_methods tables.
I want to delete all rows in each of these tables.  I want to do it
through the content resolver as it is a full delete.

Here is my method:

private void deleteAllContacts(ContentResolver contentResolver)
{
        contentResolver.delete(Contacts.People.CONTENT_URI, null,
null);
        contentResolver.delete(Contacts.Phones.CONTENT_URI, null,
null);
        contentResolver.delete(Contacts.ContactMethods.CONTENT_URI,
null, null);
 }

The rows in the people table get properly deleted (my app has the
proper uses permissions setup).  However I am getting an error on the
deletes for the Phones and Contact methods.  What am I doing wrong
here?  Do I have to loop through each person to delete their related
info?

The log trace:
--------------------------------------------------------------------
ERROR/DatabaseContentProvider(544):
java.lang.UnsupportedOperationException: Cannot delete that URL:
content://contacts/phones
ERROR/DatabaseContentProvider(544):     at
com.google.android.providers.contacts.ContactsProvider.deleteInternal(ContactsProvider.java:
795)
ERROR/DatabaseContentProvider(544):     at
android.content.DatabaseContentProvider
$4.call(DatabaseContentProvider.java:467)
ERROR/DatabaseContentProvider(544):     at
android.content.DatabaseContentProvider
$4.call(DatabaseContentProvider.java:463)
ERROR/DatabaseContentProvider(544):     at
android.content.DatabaseContentProvider.lockAndCall(DatabaseContentProvider.java:
400)
ERROR/DatabaseContentProvider(544):     at
android.content.DatabaseContentProvider.delete(DatabaseContentProvider.java:
470)
ERROR/DatabaseContentProvider(544):     at
android.content.ContentProvider$Transport.delete(ContentProvider.java:
174)
ERROR/DatabaseContentProvider(544):     at
android.content.ContentProviderNative.onTransact(ContentProviderNative.java:
140)
ERROR/DatabaseContentProvider(544):     at
android.os.Binder.execTransact(Binder.java:274)
ERROR/DatabaseContentProvider(544):     at
android.dalvik.NativeStart.run(Native Method)
DEBUG/dalvikvm(544): Exception Landroid/database/SQLException; from
Parcel.java:891 not caught locally
ERROR/JavaBinder(544): *** Uncaught remote exception!  (Exceptions are
not yet supported across processes.)
ERROR/JavaBinder(544): android.database.SQLException: transaction was
rolled back
ERROR/JavaBinder(544):     at
android.content.DatabaseContentProvider.releaseDbLock(DatabaseContentProvider.java:
367)
ERROR/JavaBinder(544):     at
android.content.DatabaseContentProvider.lockAndCall(DatabaseContentProvider.java:
414)
ERROR/JavaBinder(544):     at
android.content.DatabaseContentProvider.delete(DatabaseContentProvider.java:
470)
ERROR/JavaBinder(544):     at android.content.ContentProvider
$Transport.delete(ContentProvider.java:174)
ERROR/JavaBinder(544):     at
android.content.ContentProviderNative.onTransact(ContentProviderNative.java:
140)
ERROR/JavaBinder(544):     at
android.os.Binder.execTransact(Binder.java:274)
ERROR/JavaBinder(544):     at android.dalvik.NativeStart.run(Native
Method)
ERROR/DatabaseContentProvider(544): caught RuntimeException
ERROR/DatabaseContentProvider(544):
java.lang.UnsupportedOperationException: Cannot delete that URL:
content://contacts/contact_methods
ERROR/DatabaseContentProvider(544):     at
com.google.android.providers.contacts.ContactsProvider.deleteInternal(ContactsProvider.java:
795)
ERROR/DatabaseContentProvider(544):     at
android.content.DatabaseContentProvider
$4.call(DatabaseContentProvider.java:467)
ERROR/DatabaseContentProvider(544):     at
android.content.DatabaseContentProvider
$4.call(DatabaseContentProvider.java:463)
ERROR/DatabaseContentProvider(544):     at
android.content.DatabaseContentProvider.lockAndCall(DatabaseContentProvider.java:
400)
ERROR/DatabaseContentProvider(544):     at
android.content.DatabaseContentProvider.delete(DatabaseContentProvider.java:
470)
ERROR/DatabaseContentProvider(544):     at
android.content.ContentProvider$Transport.delete(ContentProvider.java:
174)
ERROR/DatabaseContentProvider(544):     at
android.content.ContentProviderNative.onTransact(ContentProviderNative.java:
140)
ERROR/DatabaseContentProvider(544):     at
android.os.Binder.execTransact(Binder.java:274)
ERROR/DatabaseContentProvider(544):     at
android.dalvik.NativeStart.run(Native Method)
DEBUG/dalvikvm(544): Exception Landroid/database/SQLException; from
Parcel.java:891 not caught locally
ERROR/JavaBinder(544): *** Uncaught remote exception!  (Exceptions are
not yet supported across processes.)
ERROR/JavaBinder(544): android.database.SQLException: transaction was
rolled back
ERROR/JavaBinder(544):     at
android.content.DatabaseContentProvider.releaseDbLock(DatabaseContentProvider.java:
367)
ERROR/JavaBinder(544):     at
android.content.DatabaseContentProvider.lockAndCall(DatabaseContentProvider.java:
414)
ERROR/JavaBinder(544):     at
android.content.DatabaseContentProvider.delete(DatabaseContentProvider.java:
470)
ERROR/JavaBinder(544):     at android.content.ContentProvider
$Transport.delete(ContentProvider.java:174)
ERROR/JavaBinder(544):     at
android.content.ContentProviderNative.onTransact(ContentProviderNative.java:
140)
ERROR/JavaBinder(544):     at
android.os.Binder.execTransact(Binder.java:274)
ERROR/JavaBinder(544):     at android.dalvik.NativeStart.run(Native
Method)





--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
Announcing the new M5 SDK!
http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to