Проблема в получении отфильтрованных результатов от Content Resolver (Входящие сообщения) - PullRequest
0 голосов
/ 19 июля 2011

Я пытаюсь получить все входящие сообщения, используя ContentResolver на основе идентификаторов сообщений, хранящихся в другой таблице.

Я хочу исключить все входящие SMS, чей идентификатор сообщения отсутствует в моей пользовательской таблице (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

Может кто-нибудь сказать мне, где я иду не так?

Ответы [ 2 ]

1 голос
/ 20 июля 2011

Вы можете получить все идентификаторы из вашей базы данных, построить строку через запятую и передать ее в NOT IN, чтобы она выглядела так:

1 голос
/ 19 июля 2011

Вы запрашиваете из внутренней базы данных Android и, конечно, эта база не содержит spam_msgids

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...