たぼさんの部屋

いちょぼとのんびり

2012-01-01から1年間の記事一覧

T326

Main.java package com.efolab.t326; /* * 一番シンプルなSQLDb * すべての引数はMain側で保持する */ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.…

T315 自作のライブラリ作成 と、使い方

自作ライブラリ作成 プロジェクト生成 isLibraryをチェックして作成する (以下は作成後のプロパティ) Manifest.xml タグを定義のチェックを外す リソースファイル 不要なので削除する(以下は削除したあと:なにもない) 必要なクラスを作成する 普通に作…

javascript 基本構文

javascript 基本構文 var XHRConnection = function(args){ var _private = { //private property "url":"null", "params":{}, "callback":{} }; var __constractor = function(args){ //constractor var _this = Object.create(null); //hash XHRConnection…

T314 AppWidget 位置情報更新

手順 AppWidgetでサービスをstartService() サービスは別プロセス(Manifestで指定 process:another) サービスのonStartCommendでロケーションマネージャを起動 requestUpdate()を実装 ロケーションマネージャのonLocationChange()が発生したとき(位置変更…

AppWidget の削除でサービスを停止するためには

Intentを新しく作ってからstopService() stopServiceでonDestroyが呼び出されている。 GPSの印がなくなっている @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // TODO Auto-generated method…

Activityを開く PendingIntent

Intent intentSetting = new Intent(context,MSettingActivity.class); //MSettingActivityクラスへの明示的インテント //getActivityでアクティビティへのPendingIntent PendingIntent pendingSetting = PendingIntent.getActivity(context, 0, intentSetti…

T312 AppWidget 起動されたサービス側でリモートビューを制御(基本のみ)

Point widgetはonUpdateでサービスを起動するだけ サービス側でリモートビューを生成してウィジェット画面を制御する ボタンのイベントをセットしてから、ウィジェット画面の「更新処理」は必須。 明示的インテントを使えば、マニフェストへのフィルタ追記が…

T313 AppWidget OnClickイベントのみ

MWidget.java package com.efolab.t313; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.Intent; import android.wi…

LocationListenerのonStatusChanged

@Override public void onStatusChanged(String provider, int status, Bundle extras) { switch (status) { case LocationProvider.AVAILABLE: Log.v("Status", "AVAILABLE"); break; case LocationProvider.OUT_OF_SERVICE: Log.v("Status", "OUT_OF_SERVI…

AppWidger作成手順

マニフェストファイル Receiver追加 name MainAppWidget で作成 intent-filter追加 action追加 action name は android.appwidget.action.APPWIDGET_UPDATE Receiverにmeta-data追加 meta-data nameは android.appwidget.provider ここまででmanifest.xmlの…

T307 Parcelのテスト Intentの引数としてクラスを送る

手順としては implements Parcelableしたクラスを作る(今回はMyPointクラス) implements Parcelable すると自動生成で以下のようになる public class Hoge implements Parcelable { @Override public int describeContents() { // TODO Auto-generated met…

T304 AIDLでプロセス間通信 明示的intent :explicit)

問題あり このソースでは 終了処理してからもデータの受け渡しができてしまう なぜかは不明。 従って、いまのところは暗黙的インテント方式で行う! 暗黙的インテント方式でも「同じ」!! 動作 明示的はexplicit 開始と終了 context.startService(intent)で…

T303 AIDLでプロセス間通信 データ送信(暗黙的intent:implicit)

暗黙的はimplicit 問題点は サービス開始->データ送信 これはOK で、サービス停止->データ送信 これも、動作してしまう・・ Manifest.xml service にintent-filterを記述する <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.efolab.t303" android:versionCode="1" android:versionName="1.0" > </manifest>

SECTION234 バインドとコールバックでプロセス間通信

コールバックを行うにはコールバックインターフェースを使用する アクティビティの画面更新などサービスからアクティビティへの通知が必要な仕組みを提供するのがコールバックです。 流れ アクティビティからサービスをバインドする コールバックを登録する…

T207 WeakReference

Main.java package com.efolab.t207; import java.lang.ref.WeakReference; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.Log; import android.widget.LinearLayout; public class Main ex…

1行で書く handler.sendMessage

public static Message obtain (Handler h, int what, Object obj) handler.sendMessage(Message.obtain(handler , 0 , value));

SECTION233 バインドを利用してサービスを起動する

バインドによってサービスを起動するには AIDL(Android Interface Definition Language)というプロセス間で情報を交換の際の形式を 宣言し、定義しますが、実装の際には以下の手続きが必要です。 AIDLファイルを定義して作成(ファイル名の拡張子は.aidl) A…

SECTION232 インテントによりサービスを起動する(別プロセス)

別プロセスで起動する場合は サービスを起動した際に、プロセスを起動元とは異なる別のプロセスで実行したい場合には AndroidManifest.xmlのServiceタグに Android:process=":XXXXXXXXX"を記述します。 (XXXは任意) ^^^^^^^^^^^^ そうすれば DDMSの画面で複…

SECTION149 位置情報取得時にインテントを発行する

ReceiveActivityが複数起動してしまうのが困るな。 Main.java package com.efolab.s149; import android.app.Activity; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.location.Criter…

SECTION098 最後に取得した位置情報を調べる

最後に取得した位置 //最後に取得した位置情報の取得 Location location = mLocatioManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); Main.java package com.efolab.s098; import android.content.Context; import android.location.Location; …

SECTION097 地図画面上に別の画像を重ねて表示する

Main.java package com.efolab.s097; import java.util.List; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Point; import android.…

ハンドラー 内部クラス

@SuppressWarnings("hiding") private static class MainHandler<Class> extends Handler { private final WeakReference<Class> klass; public MainHandler(Class mClass) { klass = new WeakReference<Class>(mClass); } @Override public void handleMessage(Message message) </class></class></class>…

T203 SqlDbConnection ver1.1 完成版

使い方 インスタンス生成 open sql close instance SqlDbConnection conn = new SqlDbConnection(context); open ReadOnly conn.openReadOnly(); Writable conn.openWritable(); sql insert , update , delete conn.execSQL(sql); select Cursor c = conn.se…

パッケージ名を取得

context.getPackageName()

sdカードのパスを取得

sdcardfile.getPath()

SQLite テーブルの存在確認

private boolean isTableExists() { boolean ret = false; String kakunin_sql = "select count(*) from sqlite_master where type='table' and name= '" + DbConnection.DBTABLE + "';"; Log.v("DbConnection", "kakunin_sql=" + kakunin_sql); db = dbHelp…

乱数の生成

// 乱数の生成 private static int getIntRand(int min, int max) { int ret = (int) Math.floor(Math.random() * (max - min + 1)) + min; // Log.v("ret","min="+min+",max="+max+",ret="+ret); return ret; }

T201 LocationManagerをserviceとして起動。SQliteに書込み(地図とMUtilを使用)

MMapViwe.java package com.efolab.t201; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.util.Log; import android.view.Gravity; import android.view.View;…

SQLite TIMESTAMP 

TIMESTAMPカラムのセット , update_date TIMESTAMP DEFAULT (DATETIME('now','localtime'))

getLineNumberメソッド:電話番号を取得

getLineNumber public static String getLineNumber(Context context){ TelephonyManager telephonyManager = (TelephonyManager)context. getSystemService(Context.TELEPHONY_SERVICE); // 電話番号を取得します // android.permission.READ_PHONE_STATE …