我在我的服务中运行以下函数'getChromeLastURL()',并检查每秒访问的最后一个URL(我想抓住Chrome或其他浏览器打开时用户正在访问的当前URL)。
问题 - 浏览器历史记录似乎不经常更新。它确实改变了我可以在Log中看到,但它需要一段时间,不能观察一组内部。
有没有办法强制浏览器历史记录刷新并获取最新的URL?
private String getChromeLastURL() {
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 = "";
mCur.moveToLast();
//title = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.TITLE));
url = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.URL));
Log.v("focus" + " url", "Chrome URL = " + url);
return url;
}
答案 0 :(得分:4)
讨厌回答我自己的问题,但我通过以下方式实现了这个目标:
更改:
Cursor mCur = getContentResolver().query(uriCustom, proj, sel, null, null);
到
Cursor mCur = getContentResolver().query(uriCustom, proj, sel, null, BookmarkColumns.DATE + " ASC");