スポンサーサイト

-------- --:--:-- --

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【Android】ファイルの入出力

2011-09-20 23:10:04 Tue

Androidでロックファイルを作ってアプリケーションの振る舞いを制御した際のファイル出力方法についてメモ。

ファイルのガワを作成するまでで、ファイルに書き込みしてないからなのか、パーミッションは設定していません。
振る舞いは「.lock」という名前のロックファイルを作成して、このファイルの存在する/しないで振る舞いを変えるという単純なものです。

Android端末内のディレクトリにファイル出力


1.ファイルパスを決める


private static final String LOCK_FILE = "/data/data/" + AndroidApp.class.getPackage().getName()+ "/.lock1";


2.ファイルを出力するディレクトリを作成・ファイルを作成


File file = new File(LOCK_FILE);
Log.d(TAG, "absolutepath : " + file.getAbsolutePath());
if(file.exists()){
return file.exists();
} else {
if(!file.getParentFile().exists()){ // ファイル出力するディレクトリの存在確認
file.getParentFile().mkdirs(); // ディレクトリ作成
}
if (file.createNewFile()) { // ファイルの作成
Log.d(TAG, "lock file create success.");
}
}


/tmpのパーミッションは777なのでファイルの入出力が自由なようです。
ただ/tmpのファイルはAndoidのシャットダウンで削除されるので
再起動時には空っぽになっちゃうようです。

SDカードにファイル出力


1.マニフェストファイルにパーミッション設定

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


2.ファイルパスを決める

private static final String PATH = Environment.getExternalStorageDirectory().toString() + "/" + AndroidApp.class.getPackage().getName()+ "/.lock2";



後は「Android端末内のディレクトリにファイル出力」の2と同じく出力するだけ。


■参考URL
Androidでファイルの入出力



スポンサーサイト

【Android】PreferenceActivityの使い方

2011-09-14 23:16:15 Wed

PreferenceActivityの利用方法についてはこちらが参考になります。

コンポーネントのリスナーを設定して、項目が変更されたときにイベントを取得し、表示を変更する実装方法があります。

また、コンポーネントの依存関係の実装方法もあります。
これを使えば、「上の設定項目であるチェックボックスがチェックされたときにのみ設定可能にする」こともXMLで簡単にできます。

最後に、設定された値を取得する方法もあります。


今作っているアプリが、AppWidgetProviderからServiceとPreferenceActivityを呼び出すアプリなのですが、
PreferenceActivityで設定した項目をServiceで取得して、Serviceでロジック動かしてAppWidgetProviderのWidgetをRemoteViewsを通して更新するといったことができました。


【Android】ボタンのクリック時、非クリック時

2011-09-14 23:02:54 Wed

ボタンを画像にしたり、
クリックしたときにボタンを変えたりする方法。

こちらが参考になります。


【Android】ServiceからActivityを呼び出す

2011-09-07 23:49:15 Wed

例えば電話番号をもとに、電話をかける手前のダイアログを表示するメモ。
参考にさせていただいたサイトがあったのですが、、、失念してしまいました。。。


<uses-permission android:name="android.permission.CALL_PHONE"/>





Intent callIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:09011112222"));
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // Activity以外からActivityを呼び出すためのフラグを設定
startActivity(callIntent);



参考URL
http://319ring.net/blog/archives/1442

【Android】Serviceで定期的に処理をする

2011-09-07 23:45:06 Wed

Serviceで定期的な処理


ちゃんとしたサンプルはネット上にいくらでもあるのでメモまで。
※でもこれ、ほっとくと永久に実行されるのでどう制御するべきなんだろうか。。。


// usage
setAlarm(this, 30L);
//
/**
*
* @param context
* @param interval long seconds
*/
private void setAlarm(Context context, long interval) {
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
long now = System.currentTimeMillis();
long nextTime = now + interval * 1000;
PendingIntent sender = getPendingAlarmIntent(context);
am.set(AlarmManager.RTC_WAKEUP, nextTime, sender);
}

private PendingIntent getPendingAlarmIntent(Context context) {
return PendingIntent.getService(MyService.this, 0,
new Intent(MyService.this, MyService.class), 0);
}



参考URL
http://labs.techfirm.co.jp/android/y-kumada/1744
名言集
全記事(数)表示
全タイトルを表示
ブログ内検索
Loading
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。