AOSP的Browser中使用的是系统的android.provider.Browser,如果想自己管理一套收藏夹和访问历史,可以试着重写一下
1、新包中添加frameworks\base\core\java\android\provider中的BrowserContract.java和Browser.java
2、Browser.java中的WebIconDatabase改成自身的
接下来是如何把android.provider.Browser进行替换的问题,我用的是土办法,
把sdk的android.jar中先把android.provider.Browser删除(记得要备份一个android.jar)
把引用的framework_intermediates和framework-base_intermediates中android.provider.Browser和BrowserContract都删除
然后刷新工程,看到一堆错误出现,其中content、chrome和browser三个部分都会报错
先不急着修改包名,我们需要把里面的关键字先改掉
3、AndroidMannifest中加上自己的.provider.BrowserProvider2,修改authorities名称为自己的关键字
Permission也改成自己的包名。
4、修改BrowserProvider
1)sDatabaseName名称
2)把getBookmarksSuggestions中browser改成自定义的
5、修改BrowserProvider2
1)把LEGACY_AUTHORITY修改成自定义的
6、新建provider的BrowserContract中修改
1)AUTHORITY改成自定义的
6、新建provider的Browser中修改
1)BOOKMARKS_URI、SEARCHES_URI、EXTRA_HEADERS、EXTRA_APPLICATION_ID、INITIAL_ZOOM_LEVEL修改成自定义的
7、修改chrome中ChromeBrowserProvider的
1)API_AUTHORITY_SUFFIX
2)BROWSER_CONTRACT_AUTHORITY
3)mUriMatcher.addURI("browser" ......
8接下来就是把所有异常的报名统一替换掉
重新编译运行,收藏夹和历史记录就是新的了