23

Fino al livello API 22 (cioè fino a Lollipop), c'è stato un modo per leggere la cronologia e i segnalibri dall'app Chrome (come mostrato in this thread) utilizzando l'autorizzazione com.android.browser.permission.READ_HISTORY_BOOKMARKS.Come ottenere la cronologia e i segnalibri di Chrome in Android Marshmallow (API> = 23)?

Ora, nell'API Android = 23 Marshmallow, poiché l'intero sistema Segnalibro del browser è stato rimosso in Marshmallow (changes here), il metodo sopra non funziona più.

Here is the thread che mostra perché questo non è più possibile.

Nella mia ricerca finora, non ho trovato buone notizie. Google ha definitivamente eliminato la funzione Segnalibri di sistema (here & here), la domanda è se Chrome Browser lo esponesse in qualche modo?

C'è un rimpiazzo/modo di leggere i segnalibri e la cronologia da Chrome (anche Chrome specifico risponderebbe a questa domanda) andando avanti in Android Marshmallow?

+0

Si prega di non confondere [tag: google-chrome] e [tag: google-chrome-app] – Xan

+1

se hai trovato risposta in qualsiasi momento, per favore fatemelo sapere. Ho lo stesso problema :) –

+0

Possibile duplicato di [autorizzazione READ \ _HISTORY \ _BOOKMARKS non funziona su API 23] (https://stackoverflow.com/questions/46828417/permission-read-history-bookmarks-is-not -working-on-api-23) – Nawrez

risposta

-4

È possibile visualizzare la cronologia digitando

Chrome://history 

come URL.

+1

Intendevo - in modo grammaticale dall'API Android/Java, cioè come scrivere un'app per esso. – user1406716

+0

@ user1406716 Hai mai trovato una soluzione a questo problema? Se così posta la risposta! :) – Smittey

+0

no, non l'ho fatto. La risposta di @ j__m sembra promettente, ma è necessario provarla. – user1406716

5

Contrariamente alla documentazione citata, com.android.browser.permission.READ_HISTORY_BOOKMARKS è ancora definito dal framework e può ancora essere ottenuto dalle app. Sfortunatamente, su Marshmallow e versioni successive, Chrome verifica una diversa autorizzazione, che le app regolari non sono autorizzate ad ottenere. Per motivi di compatibilità, quando il controllo dei permessi fallisce inevitabilmente, Chrome restituisce zero righe invece di lanciare un SecurityException.

si può vedere il codice sorgente qui:

query() chiamate hasReadAccess(), che chiama hasPermission("com.android.browser.permission.READ_HISTORY_BOOKMARKS"), che da API> = M ignora l'argomento permesso e invece controlla per com.android.chrome.permission.READ_WRITE_BOOKMARK_FOLDERS. Questa autorizzazione è limitata alle app di sistema e alle app firmate con la chiave di Google.

+0

Quindi, cosa significa? Un'altra applicazione può leggere la cronologia di Chrome per Android? – Melab