使用 Android 的默认浏览器管理书签,可以看出它们是不同类型的书签。
- 本地书签,
- 每个 (Google) 帐户书签。
获取所有书签(本地和每个帐户)非常简单。这是我如何进行的:
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 帐户之一相关联