Webブラウザーのアクセス履歴を取得する - Android

AndroidでWebブラウザでアクセスしたWebページの履歴を取得する方法を紹介します。

プロジェクトの設定

Androidアプリケーションプロジェクトを新規作成します。
  • Project name: GetHistory
  • Build Target: Android 2.3.3
  • Application name: GetHistory
  • Package name: iPentec.SimpleApp.GetHistory
  • Activity: GetHistoryActivity

UI

下図のUIを準備します。ButtonとTextViewを配置します。


ボタンのOnClickプロパティに"button_click"を設定します。詳細はこちらの記事を参照してください。

コード

以下のコードを記述します。

GetHistoryActivity.java

package iPentec.SimpleApp.GetHistory;

import android.app.Activity;
import android.content.ContentResolver;
import android.os.Bundle;
import android.provider.Browser;
import android.widget.*;
import android.view.*;
import android.provider.*;
import android.database.Cursor;

public class GetHistoryActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    
    public void button_click(View view){
      Cursor mcur;
      ContentResolver cr = getContentResolver();
      mcur = Browser.getAllVisitedUrls(cr);
      mcur.moveToFirst();
      
      TextView textView1 = (TextView)findViewById(R.id.textView1);
      String contentstr="";
      
      while (mcur.isLast() == false){
        int idx = mcur.getColumnIndex("url");
        String url = mcur.getString(idx);
        contentstr = url + "\r\n" + contentstr;
        mcur.moveToNext();
      }
      textView1.setText(contentstr);
    }
}

解説

Cursor mcur;
にて、アクセス履歴の一覧を取得するためのカーソルのをします。

ContentResolver cr = getContentResolver();
getAllVisitedUrls()メソッドに与えるContentResolverを準備します。

mcur = Browser.getAllVisitedUrls(cr);
getAllVisitedUrls()メソッドを呼び出しWebブラウザのアクセス履歴を取得します。アクセス履歴の一覧を示すカーソルが戻り値になります。

mcur.moveToFirst();
カーソルを最初の位置まで戻します。

TextView textView1 = (TextView)findViewById(R.id.textView1);
String contentstr="";
TextViewとTextViewに設定する文字列を準備します。

      
while (mcur.isLast() == false){
  int idx = mcur.getColumnIndex("url");
  String url = mcur.getString(idx);
  contentstr = url + "\r\n" + contentstr;
  mcur.moveToNext();
}
カーソルが結果セットの末尾に達するまでWhileループをループします。urlキーにアクセス履歴のURLが格納されています。まずgetColumnIndexメソッドで"url"キーのインデックス番号を求め、getStringメソッドで"url"キーのインデックス番号を与えてurlを取得します。
取得したURLは順次文字列に足しこみ、TextViewに設定する文字列を作成します。
      
textView1.setText(contentstr);
TextViewに作成した文字列を設定します。

実行結果

アプリケーションを実行し、ボタンをクリックするとアクセスしたWebページの履歴が表示されます。


著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-04
作成日: 2012-04-05
iPentec all rights reserverd.