我正在寻找一种方法来获取用户在Android浏览器应用程序上访问的当前URL。
我发现我可以使用以下技术从Browser.BOOKMARKS_URI
数据库获取最后访问过的URL:
Cursor cursor = context.getContentResolver().query(Browser.BOOKMARKS_URI,
Browser.HISTORY_PROJECTION, null, null,
Browser.BookmarkColumns.DATE + " DESC");
cursor.moveToNext();
String url = cursor.getString(Browser.HISTORY_PROJECTION_URL_INDEX);
cursor.close();
问题在于,当用户按下以导航到浏览器中的上一页时,Browser.BOOKMARKS_URI
db不会更新,并且查询返回的结果不正确。
请参阅以下示例:
有没有人知道如何返回用户正在查看的正确网址?
答案 0 :(得分:0)
我认为你没有通过以下方面的批准。一试吧! 您可以像访问其他ContentProviders一样访问浏览历史记录。除了浏览历史记录,您还可以获得书签列表。
Cursor webLinksCursor = getContentResolver().query(Browser.BOOKMARKS_URI, Browser.HISTORY_PROJECTION, null, null, Browser.BookmarkColumns.DATE + " DESC");
int row_count = webLinksCursor.getCount();
int title_column_index = webLinksCursor.getColumnIndexOrThrow(Browser.BookmarkColumns.TITLE);
int url_column_index = webLinksCursor.getColumnIndexOrThrow(Browser.BookmarkColumns.URL);
if ((title_column_index > -1) && (url_column_index > -1) && (row_count > 0))
{
webLinksCursor.moveToFirst();
while (webLinksCursor.isAfterLast() == false)
{
if (webLinksCursor.getInt(Browser.HISTORY_PROJECTION_BOOKMARK_INDEX) != 1)
{
if (!webLinksCursor.isNull(url_column_index))
{
Log.i("History" , "Last page browsed " + webLinksCursor.getString(url_column_index));
break;
}
}
webLinksCursor.moveToNext();
}
}
webLinksCursor.close();
并且您还需要权限
com.android.browser.permission.READ_HISTORY_BOOKMARKS