ユーザーが 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
、ユーザーがブラウザーで前のページに移動するために戻るボタンを押したときにデータベースが更新されず、クエリが間違った結果を返すことです。
次の例を参照してください。
- ユーザーが www.google.com に移動 ->クエリが「www.google.com」を返す
- ユーザーが www.imdb.com に移動します ->クエリは「www.imdb.com」を返します
- ユーザーが www.google.com に戻るために戻る ->クエリが「www.imdb.com」を返す (!!)
ユーザーが表示している正しい URL を返す方法を知っている人はいますか?