2010-09-27 81 views
2

我正在写一个书签管理器应用程序,并且在尝试使用书签(默认浏览器与contentProvider一起使用的书签)时遇到了困难。更改Android Browser以编程方式对其书签进行排序的方式

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

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

任何人都可以请给我一个小方向如何这可能吗?一行代码,一个教程?任何东西将不胜感激!

谢谢 利奥尔

更新 - 可选的解决方案:

的Android排序的书签从书签数据库中的特定列。 数据库位于“数据 - >数据 - > com.android.browser - >数据库 - > browser.db”中。您可以使用ADB到达那里或根目录等应用程序。

Android 2.2根据“访问”列对其书签进行排序,因此访问量最高的书签将首先放置,等等。

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

需要考虑的事情:

  • 书签(总量因此可以判断最高的“访问”的值,它给了第一个书签,并从中减去至少访问1次第二书签)。
  • 每次用户进入网站时,Android浏览器都会继续增加“访问次数”。因为无法预测用户点击某个书签的次数,并且为了保持用户在您的应用中选择的排序顺序,您必须确保“访问”值中的书签编号1远远大于“访问“值书签号2有(我推荐至少有1000个不同)。

在以前的Android版本中,排序按“创建”列排序。在这里看到,例如:http://www.netmite.com/android/mydroid/packages/apps/Browser/src/com/android/browser/BrowserBookmarksAdapter.java

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

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

回答

1

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

另一种选择是更新创建日期/时间。看到这里例如:http://www.netmite.com/android/mydroid/packages/apps/Browser/src/com/android/browser/BrowserBookmarksAdapter.java

此外,它似乎默认浏览器在Android 2.2排序书签最常访问,因此,你必须改变这一列。

我希望这可以帮助任何人......

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

更新:

由于Android 3.0及以上这种情况已经改变。 bookmakrs数据库现在有一个“位置”列,您可以对其进行更改以对书签进行排序。