12

können wir Chrome Browsing Geschichte/Lesezeichen wie wir bekommen Standard-Browser mit READ_HISTORY_BOOKMARKS Erlaubnis? PS: Ich möchte nur wissen, ist es möglich?können wir Chrome Browsing Geschichte/Lesezeichen in unserer Android App

+2

Ich denke, die Antwort ist nein. Ich spreche über den Normalfall, d. H. Ohne Root-Zugriff, jede App verfügt über individuelle Daten, die im Ordner/data gespeichert sind und keine Zugriffsberechtigung für den Ordner der anderen App haben. Wenn Sie jedoch Root-Zugriff haben, ist das ein anderer Fall. – dumbfingers

Antwort

14

Ja, es ist sehr viel möglich. verwenden uri: content://com.android.chrome.browser/bookmarks statt Browser.BOOKMARKS_URI

String[] proj = new String[] { Browser.BookmarkColumns.TITLE,Browser.BookmarkColumns.URL }; 
Uri uriCustom = Uri.parse("content://com.android.chrome.browser/bookmarks"); 
String sel = Browser.BookmarkColumns.BOOKMARK + " = 0"; // 0 = history, 1 = bookmark 
Cursor mCur = getContentResolver().query(uriCustom, proj, sel, null, null); 
mCur.moveToFirst(); 
@SuppressWarnings("unused") 
String title = ""; 
@SuppressWarnings("unused") 
String url = ""; 

if (mCur.moveToFirst() && mCur.getCount() > 0) { 
    boolean cont = true; 
    while (mCur.isAfterLast() == false && cont) { 
     title = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.TITLE)); 
     url = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.URL)); 
     // Do something with title and url 
     mCur.moveToNext(); 
    } 
} 

Havent den Code auf Fehler getestet, aber es sollte funktionieren. Das Wichtigste ist, dass man die zu verwendende URI kennt. Reading this und this könnte helfen.

+3

Wie herauszufinden, welche URI ist die gute für Lesezeichen (Welche muss verwendet werden)? Ich benutze Browser.BOOKMARKS_URI (= Uri.parse ("content: // browser/bookmarks")): funktioniert auf den meisten Geräten gut, aber auf einigen Geräten (wahrscheinlich verwendet Chrome als Standard), löst es eine "java.lang .IllegalArgumentException: Unbekannter URL-Inhalt: // Browser/Lesezeichen " Soll ich in diesem Fall Chrome URI ausprobieren? "content: //com.android.chrome.browser/bookmarks" Was ist der richtige Weg, um zu wissen, welcher Bookmark-URI (gut) auf einem bestimmten Gerät/einer gegebenen Konfiguration verwendet werden soll? – Pascal

+7

Dies funktioniert nicht mehr in Marshmallow: https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-bookmark-browser – user1406716