8

ユーザーが 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、ユーザーがブラウザーで前のページに移動するために戻るボタンを押したときにデータベースが更新されず、クエリが間違った結果を返すことです。

次の例を参照してください。

  1. ユーザーが www.google.com に移動 ->クエリが「www.google.com」を返す
  2. ユーザーが www.imdb.com に移動します ->クエリは「www.imdb.com」を返します
  3. ユーザーが www.google.com に戻るために戻る ->クエリが「www.imdb.com」を返す (!!)

ユーザーが表示している正しい URL を返す方法を知っている人はいますか?

4

1 に答える 1