我正在尝试根据存储在另一个表中的邮件ID使用ContentResolver获取所有收件箱邮件..
我想要排除其邮件ID不在我的自定义表格中的所有收件箱短信(spam_msgids)。
我在做什么(我不知道这是否正确):
Uri uriSms=Uri.parse("content://sms/inbox");
Cursor cursor = context.getContentResolver().query(uriSms, null,"_id NOT IN (SELECT msg_id FROM spam_msgids)",null,null);
但是它已经创建了一个错误,但是已经创建了 ...
Error : 07-19 17:04:16.412: ERROR/DatabaseUtils(141):
android.database.sqlite.SQLiteException: no such table: spam_msgids: , while compiling: SELECT * FROM sms WHERE (type=1) AND (_id NOT IN (SELECT msg_id FROM spam_msgids)) ORDER BY date DESC
有人可以告诉我哪里出错了吗?
答案 0 :(得分:1)
您正在从android内部数据库查询,当然数据库不包含spam_msgids
答案 1 :(得分:1)
您可以从您的数据库中获取所有ID,构建一个逗号分隔的字符串并将其传递给NOT IN,以便它看起来像:
Cursor cursor = context.getContentResolver().query(uriSms, null,"_id NOT IN (" + stringOfCommaSeparatedStringOfIDs + ")",null,null);