【问题标题】:Change the way Android Browser sort its Bookmarks programmatically更改 Android 浏览器以编程方式对其书签进行排序的方式
【发布时间】:2010-09-27 14:04:25
【问题描述】:

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

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

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

任何人都可以给我一些指导吗?一行代码,一个教程?任何事情都会不胜感激!

谢谢, 利奥

更新 - 可选解决方案:

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

Android 2.2 根据“访问次数”列对书签进行排序,因此访问次数最多的书签会排在最前面,以此类推。

如果您想更改排序顺序,则必须更新每个书签的“访问次数”列。 例如:如果要按字母顺序对书签进行排序,则需要更新“visits”列,使以字母“A”开头的书签将具有最高的“visits”值。 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

我希望这对任何人都有帮助;)

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

【问题讨论】:

    标签: android


    【解决方案1】:

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

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

    此外,Android 2.2 上的默认浏览器似乎按“最常访问”对书签进行排序,因此您必须更改此列。

    我希望这对任何人都有帮助......

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

    更新:

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

    【讨论】:

      猜你喜欢
      • 2012-11-12
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      相关资源
      最近更新 更多