2

Is it possible to add a bookmark (by code) to Google chrome browser Android? Does anyone knows how?

Asaf Pinhassi
  • 15,177
  • 12
  • 106
  • 130

2 Answers2

3

Yes it is possible, I can do it.

If you're familiar with content providers both default and chrome provide bookmarks content providers so we can use these to change/insert bookmarks easily.

ContentValues values = new ContentValues();
values.put(Browser.BookmarkColumns.TITLE, "Yahoo Inc.");
values.put(Browser.BookmarkColumns.URL, "http://www.yahoo.com");
values.put(Browser.BookmarkColumns.BOOKMARK, 1);
values.put(Browser.BookmarkColumns.DATE, 0);

// add bookmark to default browser              
getContentResolver().insert(Browser.BOOKMARKS_URI, values);

// add bookmark to Chrome
Uri chromeUri = Uri.parse("content://com.android.chrome.browser/bookmarks");
getContentResolver().insert(chromeUri,values);

Don't forget to add the write permission in your manifest:

<uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
Mark Whitaker
  • 8,465
  • 8
  • 44
  • 68
Farhan Munir
  • 409
  • 5
  • 23
0

URI for content provider of Chrome is "content://com.android.chrome.ChromeBrowserProvider/bookmarks". But URI for default browser is Browser.BOOKMARKS_URI

ContentValues values = new ContentValues();
values.put(Browser.BookmarkColumns.TITLE, "title");
values.put(Browser.BookmarkColumns.URL, "http://ss.com");
values.put(Browser.BookmarkColumns.BOOKMARK, 1);
values.put(Browser.BookmarkColumns.CREATED, 0);
values.put(Browser.BookmarkColumns.DATE, 0);
values.put("parentId", 3); // just for Chrome

getContentResolver().insert(Uri.parse("content://com.android.chrome.ChromeBrowserProvider/bookmarks"), values);

Have tesed in Android 4.04 and Chrome 18.0.1.

Kislingk
  • 1,427
  • 14
  • 23