Android查询未在Jelly Bean中过滤的书签

Android查询未在Jelly Bean中过滤的书签,android,filter,bookmarks,android-contentresolver,Android,Filter,Bookmarks,Android Contentresolver,寻找一些关于在不同版本的Android中查询的帮助。我有以下返回书签光标的代码。我正在尝试过滤浏览器,以仅返回实际书签的URL,而不仅仅是浏览器历史记录。它在3.1版上工作,但在我的新Nexus7上,它不会按书签过滤,而是返回光标中的所有浏览器历史记录。任何洞察都是值得赞赏的。我想我遇到了过滤和内容解析器查询的问题,它不注意选择参数,但似乎找不到任何信息。谢谢 String[] mColumnStrings = { Browser.BookmarkColumns.TITLE,

寻找一些关于在不同版本的Android中查询的帮助。我有以下返回书签光标的代码。我正在尝试过滤浏览器,以仅返回实际书签的URL,而不仅仅是浏览器历史记录。它在3.1版上工作,但在我的新Nexus7上,它不会按书签过滤,而是返回光标中的所有浏览器历史记录。任何洞察都是值得赞赏的。我想我遇到了过滤和内容解析器查询的问题,它不注意选择参数,但似乎找不到任何信息。谢谢

String[]   mColumnStrings = 
{ 
  Browser.BookmarkColumns.TITLE, 
  Browser.BookmarkColumns.URL, 
  Browser.BookmarkColumns._ID,
  Browser.BookmarkColumns.BOOKMARK

 }; 

 try{
   bookmarksCursor =   getActivity().getContentResolver().query(Browser.BOOKMARKS_URI, mColumnStrings, Browser.BookmarkColumns.BOOKMARK+ " = 1 ", null , Browser.BookmarkColumns.URL + " ASC"); 
   getActivity().startManagingCursor(bookmarksCursor);


    return bookmarksCursor;

这对我来说很好…我在AVD上测试了它…实际上Android 4.1已经有了一些默认书签…打印Browser.BookmarkColumns.BOOKMARK以验证结果是否被书签

您可以使用此方法专门为您的应用程序更改

private void varify(Cursor bookmarksCursor) {
  bookmarksCursor.moveToFirst();
  while(bookmarksCursor.moveToNext()) {
    Log.v("title", bookmarksCursor.getString(0));
    Log.v("url", bookmarksCursor.getString(1));
    Log.v("id", bookmarksCursor.getString(2));
    Log.v("bookmark", bookmarksCursor.getString(3));
  }
}
希望这能奏效


如果您认为这回答了您的问题,请将其标记为“已接受”。这将提高您和我的声誉分数。

谢谢您的测试。有趣的是,在我的Nexus7上,日志还显示了所有的浏览历史,而不仅仅是书签。但是,在4.1模拟器上运行时,日志仅正确显示书签。因此,我运行4.1.1的新Nexus 7不喜欢内容解析程序的查询???嗯…有趣…尝试一件事…在查询方法的参数列表中使用'Browser.BookmarkColumns.BOOKMARK+“=?”,新字符串[]{“1”}'。谢谢您的建议,但运气不好。我尝试了选择和SelectionAgs参数的各种组合,希望触发查询,但没有任何效果。我发现以下链接,看起来4.1.1中做了一些更改,但不确定是否链接了该问题。再次感谢。很抱歉,我发现我的设备实际上与我电脑上的Chrome收藏夹同步。奇怪的是,我想Jelly Bean会在你添加帐户时立即进行同步。以前从未在我的其他android标签或手机上看到过。我在Nexus7上看到了大量的个人电脑收藏夹,而不是浏览历史记录。有趣的是,它们并没有出现在我的Nexus7浏览器中。我甚至从设备上删除了我的google帐户,书签仍然显示在listview中,它有数百个来自我个人电脑FAV的URL,而不是我在设备上的6个书签。现在我知道了。