2010-09-27 84 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數據庫現在有一個「位置」列,您可以對其進行更改以對書籤進行排序。