如何在Android上为每个帐户获取/设置书签

时间:2012-12-05 14:15:32

标签: android android-contentprovider bookmarks

使用Android的默认浏览器管理书签,可以看出它们是不同类型的书签。

  • 本地书签,
  • per(Google)帐户书签。

List Bookmarks

获取所有书签(本地和每个帐户)非常简单。以下是我的工作方式:

public static List<Bookmark> getBookmarks(ContentResolver contentResolver)
{
    String[] projection = new String[]
    { BookmarkColumns._ID, BookmarkColumns.TITLE, BookmarkColumns.URL, BookmarkColumns.VISITS, BookmarkColumns.DATE, BookmarkColumns.FAVICON};

    ArrayList<Bookmark> bookmarks = new ArrayList<Bookmark>();

    Cursor cursor = contentResolver.query(Browser.BOOKMARKS_URI, projection, BookmarkColumns.BOOKMARK, null, null);

    if (cursor.moveToFirst())
    {
        do
        {
            Bookmark bookmark = new Bookmark();

            bookmark.setId(cursor.getLong(cursor.getColumnIndex(Browser.BookmarkColumns._ID)));
            bookmark.setTitle(cursor.getString(cursor.getColumnIndex(Browser.BookmarkColumns.TITLE)));
            bookmark.setUrl(cursor.getString(cursor.getColumnIndex(Browser.BookmarkColumns.URL)));
            bookmark.setNumberOfVisit(cursor.getInt(cursor.getColumnIndex(Browser.BookmarkColumns.VISITS)));

            byte[] data = cursor.getBlob(cursor.getColumnIndex(Browser.BookmarkColumns.FAVICON));
            if (data != null) {
                Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
                if(bitmap!=null)
                    bookmark.setFavicon(bitmap);
            }

            bookmarks.add(bookmark);
        } while (cursor.moveToNext());
    }

    return bookmarks;
}

但我怎么知道哪些书签是本地的,哪些是“每个帐户”。 最终,我希望能够为给定的帐户创建书签。

我怎么能实现这个目标?

默认Android浏览器允许这样做,所以这应该是可行的。

为了说明这一点,这里是Android的默认浏览器'添加书签'UI:

它允许添加书签并选择“添加它”('Ajouterà')。 可以在本地书签(favoris locaux)中将其关联到设备上定义/已知的现有Google帐户之一

Add bookmark

0 个答案:

没有答案