编程发现Chrome浏览器历史记录

问题描述:

我在做一个小的Java应用程序的用户访问了大多数浏览器显示哪些URL。我将如何访问在Java中我的浏览器历史记录?

I am making a small Java application to show which URLs in Chrome that the user has visited the most. How would I access my browser history within Java?

创建一个 ContentObserver 类...

static class ChromeOberver extends ContentObserver {   
    public ChromeOberver(Handler handler) { 
        super(handler);          
    } 

    @Override
    public void onChange(boolean selfChange) { 
        onChange(selfChange, null); 
    }    

    @Override
    public void onChange(boolean selfChange, Uri uri) {
        super.onChange(selfChange);
        Log.d(TAG, "onChange: " + selfChange);

        Cursor cursor = context.getContentResolver()
              .query(CHROME_BOOKMARKS_URI, new String() {"title", "url"}, 
                                           "bookmark = 0", null, null);

        // process cursor results
    }
}

和注册该类监测历史/书签变化:

and register that class to monitor history/bookmark changes:

private static String CHROME_BOOKMARKS_URI = 
       "content://com.android.chrome.browser/bookmarks";

ChromeOberver observer = new ChromeOberver();
resolver.registerContentObserver(CHROME_BOOKMARKS_URI, true, observer);

不要忘了权限:

Don't forget the permission:

<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" />