获取id为的记录>;60使用ContenResolver Android

获取id为的记录>;60使用ContenResolver Android,android,sms,android-contentresolver,Android,Sms,Android Contentresolver,我正在开发一个应用程序来接收消息。我在应用程序中实际接收短信没有问题。问题也不是如何使用ContenResolver修改数据,而是仅选择id大于某个值(例如大于60)的特使。这是我的密码: String[] reqCols = new String[] { "_id", "address", "body" }; ContentResolver cr = getContentResolver(); Cursor c = cr.query(inboxURI, reqCols, criterio &g

我正在开发一个应用程序来接收消息。我在应用程序中实际接收短信没有问题。问题也不是如何使用
ContenResolver
修改数据,而是仅选择id大于某个值(例如大于60)的特使。这是我的密码:

String[] reqCols = new String[] { "_id", "address", "body" };
ContentResolver cr = getContentResolver();
Cursor c = cr.query(inboxURI, reqCols, criterio > 60, null, null);

提前感谢。

您不能只提供布尔条件。您可以通过SQL查询与数据库交互。查询方法可能会对此进行一些抽象,但您仍然需要以SQL格式提供条件。试着这样做:

int criterio = 60;

String[] reqCols = new String[] { "_id", "address", "body" };
ContentResolver cr = getContentResolver();
Cursor c = cr.query(inboxURI, reqCols, "_id > ?", new String[] { String.valueOf(criterio) } , null);

这里发生的情况是提供了一个条件
\u id>?
,这意味着您希望
\u id
大于稍后指定的某个值。然后在
字符串
数组的下一个参数中提供值。在这种情况下,
criterio
的值为
60
。您可以只编写
“\u id>60”
“\u id>”+标准作为条件,但这并不明智。始终在下一个参数中提供值,以防止像SQL注入这样令人讨厌的事情。

到目前为止,您尝试了什么?向我们展示一些代码并描述您遇到的问题。代码usted是://列出必需的列String[]reqCols=newstring[]{“\u id”,“address”,“body”};国际标准;//获取内容解析器对象,该对象将处理内容//提供程序ContentResolver cr=getContentResolver();//从内置内容提供商游标c=cr.query获取收件箱SMS消息(inboxURI,reqCols,criterio>60,null,null);Eclipse告诉我“boolean不适用于ContentResolver”,不要只是在注释中发布代码。在你的问题中编辑它。这次我已经处理好了。如果我的回答对你有帮助,请不要忘记接受。这向其他人表明,我的回答对你很有帮助,我们都因此获得了一些声誉。