23

До уровня API 22 (т. Е. До Lollipop) был доступен способ чтения истории и закладок из приложения Chrome (как показано в this thread) с разрешения com.android.browser.permission.READ_HISTORY_BOOKMARKS.Как получить историю Chrome и закладки в Android Marshmallow (API> = 23)?

Теперь, в Android API = 23 Marshmallow, поскольку вся система закладок браузера была удалена в Marshmallow (changes here), вышеуказанный метод больше не работает.

Here is the thread Это показывает, почему это невозможно.

В моих исследованиях до сих пор я не нашел хороших новостей. Google определенно убил функцию «Системные закладки» (here & here), вопрос в том, может ли браузер Chrome разоблачить его каким-либо образом?

Есть ли замена/способ чтения Закладок и истории из Chrome (даже конкретный Chrome ответил бы на этот вопрос) в Android Marshmallow?

+0

Пожалуйста, не путайте [tag: google-chrome] и [tag: google-chrome-app] – Xan

+1

, если вы обнаружили ответ в любое время, сообщите мне. У меня та же проблема :) –

+0

Возможный дубликат [разрешение READ \ _HISTORY \ _BOOKMARKS не работает в API 23] (https://stackoverflow.com/questions/46828417/permission-read-history-bookmarks-is-not -working-on-api-23) – Nawrez

ответ

-4

Вы можете просматривать историю, набрав

Chrome://history 

Как ваш URL.

+1

Я имел в виду - про грамматически из Android/Java API, т. е. как писать приложение для него. – user1406716

+0

@ user1406716 Вы когда-нибудь находили решение этой проблемы? Если так, ответьте! :) – Smittey

+0

Нет, у меня нет. Ответ @ j__m о том, что кажется многообещающим, но нужно попробовать. – user1406716

5

В отличие от цитируемой документации, 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.

+0

Итак, что это значит? Может ли другое приложение читать Chrome для истории Android? – Melab

+0

@ Melab кто-нибудь нашел решение для этого? –

 Смежные вопросы

  • Нет связанных вопросов^_^