更改Android Browser以编程方式对其书签进行排序的方式

时间:2010-09-27 14:04:25

标签: android

我正在编写一个书签管理器应用程序,当我尝试使用书签(默认浏览器使用contentProvider时使用的书签)时,我有点卡住了。

我知道我可以查询浏览器contentProvider并随意使用数据(.TITLE +“ASC”,。VISITS +“DESC”等),但这只会对我的应用程序上显示的书签列表进行排序,而不是Android浏览器上显示的实际书签。

市场上有几个应用程序(对浏览器书签进行排序),例如“书签排序和备份”,所以我知道这是可能的。

任何人都可以就这怎么可能给我一点指示?一行代码,一个教程?任何事情都会受到赞赏!

谢谢你, 利奥尔

更新 - 可选解决方案:

Android通过书签数据库中的特定列对其书签进行排序。 该数据库位于“Data - > Data - > com.android.browser - > databases - > browser.db”中。您可以使用ADB到达那里或Root Explorer等应用程序。

Android 2.2根据“访问次数”栏对其书签进行排序,因此访问次数最多的书签将首先放置,依此类推。

如果要更改排序顺序,则必须更新每个书签的“访问次数”列。 例如:如果要按字母顺序对书签进行排序,则需要更新“访问”列,以便以字母“A”开头的书签具有最高的“访问次数”。 Android.com Bookmark将获得1000次访问,BestBuy.com Bookmark将获得900次访问等等。

需要考虑的事项:

  • 书签的总金额(这样您就可以确定最高的“访问次数”值,将其提供给第一个书签,并从第二个书签中减去至少1次访问)。
  • 每次用户进入网站时,Android浏览器都会继续增加“访问次数”。由于您无法预测用户点击某个书签的次数,并且为了维护用户在您的应用中选择的排序顺序,因此您必须确保书签号1的“访问次数”值远大于“访问“值2号书签(我建议至少1000差异)。

在以前的Android版本中,排序按“已创建”列排序。请参阅此处:http://www.netmite.com/android/mydroid/packages/apps/Browser/src/com/android/browser/BrowserBookmarksAdapter.java

我希望这可以帮助任何人;)

如果您有不同的想法/解决方案,请分享!

1 个答案:

答案 0 :(得分:1)

好的我可能已经找到了解决方法。 它不是一个解决方案,而是更多的Hack,但您可以检索当前的书签数据,对其进行排序,删除所有书签并以新排序的顺序插入它们。

另一种选择是更新创建日期/时间。请参阅此处:http://www.netmite.com/android/mydroid/packages/apps/Browser/src/com/android/browser/BrowserBookmarksAdapter.java

此外,Android 2.2上的默认浏览器似乎按访问次数排序书签,因此您必须更改此列。

我希望这有助于任何人...

如果您有不同的想法/解决方案,请分享:)

更新

自Android 3.0及更高版本以来,这已发生变化。 bookmakrs数据库现在有一个“位置”列,您可以更改该列以对书签进行排序。