How to get Chrome History & Bookmarks in Android Marshmallow (API>=23)?

后端 未结 2 1842
故里飘歌
故里飘歌 2020-12-08 14:43

Till API Level 22 (i.e. till Lollipop), there has been a way to read History and Bookmarks from the Chrome app (as shown in this thread) using the permission com.andro

2条回答
  •  长情又很酷
    2020-12-08 15:19

    Contrary to the cited documentation, com.android.browser.permission.READ_HISTORY_BOOKMARKS is still defined by the framework, and can still be obtained by apps. Unfortunately, on Marshmallow and later, Chrome checks for a different permission, one that regular apps aren't allowed to obtain. For compatibility reasons, when that permission check inevitably fails, Chrome returns zero rows instead of throwing a SecurityException.

    You can see the source code here:

    query() calls hasReadAccess(), which calls hasPermission("com.android.browser.permission.READ_HISTORY_BOOKMARKS"), which on API >= M ignores the permission argument and instead checks for com.android.chrome.permission.READ_WRITE_BOOKMARK_FOLDERS. This permission is limited to system apps and apps signed with Google's key.

提交回复
热议问题