How can I get/set bookmarks per account on Android

邮差的信 提交于 2019-11-28 10:30:50

问题


Managing bookmarks using Android's default Browser, one can see that they are different kind of bookmarks.

  • Local bookmarks,
  • per (Google) account bookmarks.

Getting all bookmarks (local and per-account) is quite straightforward. Here is how I proceed:

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;
}

But how do I know which bookmarks are local and which are 'per account'. Ultimately, I would like to be able to create bookmark for a given account.

How could I achieve that?

Default Android Browser allows to do that, so this should be feasible.

To illustrate that, here is Android's default Browser 'Add bookmark' UI:

It allows to add bookmark and select 'where' you want to Add it ('Ajouter à'). Either in local bookmarks (favoris locaux) or associate it to one of the existing google account defined on/known by the device

来源:https://stackoverflow.com/questions/13725192/how-can-i-get-set-bookmarks-per-account-on-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!