当我从Android系统删除短信时,使用以下代码:
context.getContentResolver().delete(
Uri.parse("content://sms/"), "_id=?",
new String[] { String.valueOf(_id) });
有时,它会弹出这个异常,而且......我不知道这是怎么回事。这是系统的Sqlite模块的问题吗?
android.database.sqlite.SQLiteException: near "(": syntax error: , while compiling: SELECT _id FROM threads WHERE _id IN (SELECT DISTINCT thread_id FROM sms UNION SELECT DISTINCT thread_id FROM pduWHERE (_id=?))
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:158)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
at android.content.ContentProviderProxy.delete(ContentProviderNative.java:487)
at android.content.ContentResolver.delete(ContentResolver.java:692)
at com.comodo.a.e.l.onChange(Unknown Source)
at android.database.ContentObserver$NotificationRunnable.run(ContentObserver.java:43)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3686)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:1)
String WHERE =""; //any criteria or where condition
String pid = cursor.getString(0); // Get id;
String uri = "content://sms/" + pid;
context.getContentResolver().delete(Uri.parse(uri), WHERE, null);
使用此代码,您可以根据任何条件删除短信....