I’m trying to add a bookmark from my application using Browser.saveBookmark
protected void saveBookmark(String title, String url){
Browser.saveBookmark(this, title, url);
}
The window where the user can modify my title and press “Save bookmark” displays correctly, but when I press save, the browser closes unexpectedly
12-28 18:07:20.864: E/AndroidRuntime(560): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
12-28 18:07:20.864: E/AndroidRuntime(560): at android.os.Handler.<init>(Handler.java:121)
12-28 18:07:20.864: E/AndroidRuntime(560): at android.webkit.WebIconDatabase$EventHandler.<init>(WebIconDatabase.java:46)
12-28 18:07:20.864: E/AndroidRuntime(560): at android.webkit.WebIconDatabase$EventHandler.<init>(WebIconDatabase.java:46)
12-28 18:07:20.864: E/AndroidRuntime(560): at android.webkit.WebIconDatabase.<init>(WebIconDatabase.java:43)
12-28 18:07:20.864: E/AndroidRuntime(560): at android.webkit.WebIconDatabase.getInstance(WebIconDatabase.java:293)
12-28 18:07:20.864: E/AndroidRuntime(560): at com.android.browser.Bookmarks.addBookmark(Bookmarks.java:136)
12-28 18:07:20.864: E/AndroidRuntime(560): at com.android.browser.AddBookmarkPage$SaveBookmarkRunnable.run(AddBookmarkPage.java:136)
12-28 18:07:20.864: E/AndroidRuntime(560): at java.lang.Thread.run(Thread.java:1096)
I’m calling this action from the UI thread, so I don’t know what’s happening.
I’ve tried using the WRITE_HISTORY_BOOKMARKS permission
<uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS" />
but nothing changes.
I’ve tested this on an emulator and a Galaxy S.
Looks like this might be a bug in earlier versions of Android
http://code.google.com/p/android/issues/detail?id=11291