2012-02-06 35 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); 

通過使用此代碼,你可以基於任何條件刪除短信....