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