2012-02-06 33 views
0

当我删除从Android系统SMS消息,与此代码:删除短信时出现异常。安卓

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) 

回答

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); 

通过使用此代码,你可以基于任何条件删除短信....