【发布时间】:2013-10-07 18:12:19
【问题描述】:
我正在制作一个小型 Java 应用程序来显示用户访问次数最多的 Chrome 中的哪些 URL。如何在 Java 中访问我的浏览器历史记录?
【问题讨论】:
标签: java javascript android
我正在制作一个小型 Java 应用程序来显示用户访问次数最多的 Chrome 中的哪些 URL。如何在 Java 中访问我的浏览器历史记录?
【问题讨论】:
标签: java javascript android
创建一个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
}
}
并注册该类以监控历史记录/书签更改:
private static String CHROME_BOOKMARKS_URI =
"content://com.android.chrome.browser/bookmarks";
ChromeOberver observer = new ChromeOberver();
resolver.registerContentObserver(CHROME_BOOKMARKS_URI, true, observer);
别忘了权限:
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" />
【讨论】:
SecurityException;有关详细信息,请参阅 developer.android.com/intl/ko/about/versions/marshmallow/…)。你必须在这里找到另一个解决方案。在以前的平台上它应该仍然可以工作,但您可能必须使用 content://com.android.chrome.browser/history 来获取较新的 Chrome 版本。