Comment obtenir Chrome History & Bookmarks dans Android Marshmallow (API> = 23)?
Till API Level 22 (i.e. till Lollipop), il ya eu une façon de lire L'histoire et les signets de L'application Chrome (comme indiqué dans ce fil ) en utilisant la permission com.android.browser.permission.READ_HISTORY_BOOKMARKS
.
maintenant, dans Android API=23 Marshmallow, depuis L'ensemble du système de marque-page navigateur a été supprimé dans Marshmallow ( changements ici ), la méthode ci-dessus ne fonctionne plus.
voici le fil qui montre pourquoi ce n'est plus possible.
Dans mes recherches jusqu'à présent, je n'ai pas trouvé de bonnes nouvelles. Google a certainement tué la fonctionnalité de signets système ( ici et ici ), la question Est Si navigateur Chrome serait exposer de quelque manière?
y a-t-il un remplacement / une façon de lire les signets et L'historique de Chrome (même si Chrome spécifique répond à cette question) aller de l'avant dans Androïde Marshmallow?
2 réponses
contrairement à la documentation Citée, com.android.browser.permission.READ_HISTORY_BOOKMARKS
est encore défini par le framework, et peut encore être obtenu par apps. Malheureusement, sur Marshmallow et plus tard, Chrome vérifie une permission différente, que les applications régulières ne sont pas autorisées à obtenir. Pour des raisons de compatibilité, lorsque cette vérification de permission échoue inévitablement, Chrome renvoie zéro ligne au lieu de lancer un SecurityException
.
vous pouvez voir le code source ici:
query()
appels hasReadAccess()
, quels appels hasPermission("com.android.browser.permission.READ_HISTORY_BOOKMARKS")
, qui sur API >= M ignore l'argument de permission et vérifie à la place com.android.chrome.permission.READ_WRITE_BOOKMARK_FOLDERS
. Cette autorisation est limitée aux applications système et aux applications signées avec la clé de Google.
, Vous pouvez visualiser votre histoire en tapant
Chrome://history
comme votre URL.