たぼさんの部屋

いちょぼとのんびり

アプリで標準ブラウザのブックマークへ書き込む

main.java

package com.efolab;

import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Color;
import android.os.Bundle;
import android.provider.Browser;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;

public class Main extends Activity {

	Context context;
	LinearLayout layout;
	LinearLayout base;
	ListView lv;
	ArrayAdapter<String> adapter;

	@Override
	public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	
	    context = getApplicationContext();
	    layout = new LinearLayout(context);
	    layout.setOrientation(LinearLayout.VERTICAL);
	    setContentView(layout);
	    
	    base = new LinearLayout(context);
	    base.setOrientation(LinearLayout.HORIZONTAL);
	    layout.addView(base);
	    
	    //buttons
	    Button btn1 = new Button(context);
	    btn1.setText("ブックマークを読み込む");
	    btn1.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				try{
					adapter.clear();
					//検索結果カーソルインターフェース
					Cursor c = Browser.getAllBookmarks(getContentResolver());
					
					int index = c.getColumnIndex(Browser.BookmarkColumns.URL);
					while(c.moveToNext()){
						adapter.add(c.getString(index));
					}
					c.close();
					lv.setAdapter(adapter);
					
				}catch(Exception e){
					Toast.makeText(context, ""+e, Toast.LENGTH_LONG).show();
				}
			}
		});
	    base.addView(btn1);
	    
	    Button btn2 = new Button(context);
	    btn2.setText("Bookmarkを保存");
	    btn2.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO 自動生成されたメソッド・スタブ
				ContentValues values = new ContentValues();
				
				values.put(Browser.BookmarkColumns.BOOKMARK,1);
				values.put(Browser.BookmarkColumns.URL, "args:{hoge:ggg}");
				values.put(Browser.BookmarkColumns.TITLE, "android");
				getContentResolver().insert(Browser.BOOKMARKS_URI, values);
			}
		});
	    base.addView(btn2);
	    
	    //ListView instance
	    lv = new ListView(context);
	    lv.setScrollingCacheEnabled(false);	//スクロール時に黒くなるのを防ぐ
	    lv.setBackgroundColor(Color.BLACK);	//背景色を黒指定(しないとすべて白くなって見えない)
	    layout.addView(lv);
	    
	    adapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1);
	    
	}
	
}

manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.efolab"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    <!-- 以下必要 -->
    <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
    <uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity android:name="Main">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>

</manifest>