,此代码的工作,没有错误或异常:sqliteexception星系没有这样的列,即使s2的,如果列是在模拟器上目前
getContentResolver().delete(Uri.parse("content://sms/"), "body = ? and date = ?", new String[]{body,date)});
短信被正确删除。
但是当我在galaxy s2上试试这个时,我有一个sqliteexception没有这样的列。
我检查有:
Cursor columns = getContentResolver().query(Uri.parse("content://sms"), null,null,null,null);
for (int i=0;i<columns.getColumnCount();i++){
Log.i("name", columns.getColumnName(i));
}
如果列在那里,这是的情况下,他们都在场。它应该在模拟器上的星系s2上很好地工作。我不知道这是否在其他设备上正常工作或相同。但是这个异常来自哪里?
这里是异常日志:
02-07 20:44:32.364: E/AndroidRuntime(14658):
android.database.sqlite.SQLiteException: no such column: body: ,
while compiling: SELECT _id FROM threads WHERE _id IN (SELECT DISTINCT thread_id FROM
sms WHERE (body = ? and date = ?) UNION SELECT DISTINCT thread_id FROM wpm WHERE
(body = ? and date = ?) UNION SELECT DISTINCT thread_id FROM pdu WHERE (locked = 1
AND body = ? and date = ?))
和这里“内容://短信”返回的列与光标:
02-07 20:53:21.045: W/KeyCharacterMap(14961): No keyboard for id 0
02-07 20:53:21.060: W/KeyCharacterMap(14961): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
02-07 20:53:26.045: I/ApplicationPackageManager(14961): cscCountry is not German : FTM
02-07 20:53:26.320: I/name(14961): _id
02-07 20:53:26.320: I/name(14961): thread_id
02-07 20:53:26.320: I/name(14961): address
02-07 20:53:26.320: I/name(14961): person
02-07 20:53:26.320: I/name(14961): date
02-07 20:53:26.320: I/name(14961): protocol
02-07 20:53:26.320: I/name(14961): read
02-07 20:53:26.320: I/name(14961): status
02-07 20:53:26.320: I/name(14961): type
02-07 20:53:26.320: I/name(14961): reply_path_present
02-07 20:53:26.320: I/name(14961): subject
02-07 20:53:26.320: I/name(14961): body
02-07 20:53:26.320: I/name(14961): service_center
02-07 20:53:26.320: I/name(14961): locked
02-07 20:53:26.320: I/name(14961): error_code
02-07 20:53:26.320: I/name(14961): seen
02-07 20:53:26.325: I/name(14961): deletable
02-07 20:53:26.325: I/name(14961): hidden
02-07 20:53:26.325: I/name(14961): group_id
02-07 20:53:26.325: I/name(14961): group_type
02-07 20:53:26.325: I/name(14961): delivery_date
你确定galaxy s2有相同的内容提供商列吗?我怀疑不是。我会打印出你试图查询的URI的元数据,以确保列存在。 – kosa 2012-02-07 15:14:43
我该怎么做?谢谢 – Samet 2012-02-07 19:56:11