Можем ли мы получить историю просмотров/закладок Chrome в нашем приложении для Android?

можем ли мы получить историю/закладки Chrome, как в браузере по умолчанию, используя разрешение READ_HISTORY_BOOKMARKS? PS: Я просто хочу знать, это возможно?


person Krishna Bhatia    schedule 30.10.2012    source источник
comment
Я думаю, что нет. Я говорю об обычном случае, т.е. без root-доступа каждое приложение имеет отдельные данные, которые хранятся в папке /data и не имеют разрешения на доступ к папке другого приложения. Однако, если у вас есть root-доступ, это другой случай.   -  person dumbfingers    schedule 30.10.2012


Ответы (1)


Да очень даже возможно. Используйте этот uri: content://com.android.chrome.browser/bookmarks вместо 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();
    }
}

Не проверял код на наличие ошибок, но он должен работать нормально. Важно знать, какой uri использовать. Читаю это и это может помочь.

person Aditya    schedule 20.06.2013
comment
Как определить, КАКОЙ URI подходит для закладок (какой нужно использовать)? Я использую Browser.BOOKMARKS_URI (= Uri.parse(content://browser/bookmarks)): отлично работает на большинстве устройств, но на некоторых устройствах (возможно, используя Chrome по умолчанию) вызывает исключение java.lang.IllegalArgumentException: Неизвестный URL-адрес content://browser/bookmarks Должен ли я попробовать Chrome URI в этом случае? content://com.android.chrome.browser/bookmarks Как правильно узнать, какой URI закладки является (хорошим) для использования на (данном устройстве/конфигурации)? - person Pascal; 15.01.2015
comment
Это больше не будет работать в Marshmallow: developer.android.com/about/versions/marshmallow/ - person user1406716; 26.10.2015
comment
можно ли запустить этот код, только если версия устройства меньше, чем Marshmallow?. Потому что кажется, что BookmarkColumns удален из фреймворка. - person Jayavinoth; 11.06.2018