如何获取Chrome历史记录& Android Marshmallow中的书签(API> = 23)?

时间:2015-11-02 20:40:16

标签: android google-chrome browser-history android-browser android-6.0-marshmallow

直到API等级22(即直到Lollipop),有一种方法可以使用权限com.android.browser.permission.READ_HISTORY_BOOKMARKS从Chrome应用中读取历史记录和书签(如this thread所示)。

现在,在Android API = 23 Marshmallow中,由于整个浏览器书签系统已在Marshmallow(changes here)中删除,因此上述方法不再有效。

Here is the thread显示了为什么不再可能这样做了。

到目前为止,在我的研究中,我还没有找到好消息。谷歌确实杀了系统书签功能(here& here),问题是Chrome浏览器是否会以任何方式公开它?

在Android Marshmallow中,有没有替代/方式来阅读Chrome中的书签和历史记录(甚至Chrome专门会回答这个问题)?

2 个答案:

答案 0 :(得分:7)

与引用的文档相反,com.android.browser.permission.READ_HISTORY_BOOKMARKS仍然由框架定义,仍然可以通过应用程序获得。不幸的是,在Marshmallow及更高版本中,Chrome会检查不同的权限,即不允许常规应用获取的权限。出于兼容性原因,当权限检查不可避免地失败时,Chrome会返回零行而不是抛出SecurityException

您可以在此处查看源代码:

query()调用hasReadAccess(),调用hasPermission("com.android.browser.permission.READ_HISTORY_BOOKMARKS"),其中API> = M忽略权限参数,而是检查com.android.chrome.permission.READ_WRITE_BOOKMARK_FOLDERS。此权限仅限于使用Google密钥签名的系统应用和应用。

答案 1 :(得分:-4)

您可以输入

查看历史记录
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<a href="http://www.google.co.in">Google</a>

作为您的网址。