【问题标题】:How to get Chrome History & Bookmarks in Android Marshmallow (API>=23)?如何在 Android Marshmallow (API>=23) 中获取 Chrome 历史记录和书签?
【发布时间】:2016-02-02 20:36:09
【问题描述】:

直到 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 也会回答这个问题)?

【问题讨论】:

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


【解决方案1】:

与引用的文档相反,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 密钥签名的应用。

【讨论】:

  • 那么,这是什么意思?其他应用程序能否读取 Chrome for Android 的历史记录?
  • @Melab 有人找到解决方案了吗?
【解决方案2】:

您可以通过键入查看您的历史记录

Chrome://history

作为您的网址。

【讨论】:

  • 我的意思是 - 从 Android/Java API 以编程方式编写,即为它编写一个应用程序。
  • @user1406716 你有没有找到解决这个问题的方法?如果是这样发布答案! :)
  • 不,我没有。 @j__m 的回答似乎很有希望,但需要尝试一下。
猜你喜欢
  • 2013-11-18
  • 2014-12-19
  • 1970-01-01
  • 1970-01-01
  • 2017-05-17
  • 2011-12-31
  • 1970-01-01
  • 2017-01-01
  • 2016-07-22
相关资源
最近更新 更多