2012年07月06日


バッテリー残量取得アプリのフォルダを監視してデータを取得する / Android Java

呼び出されるアプリは、こちらです。実際は専用のフォルダを設定して権限設定するべきだと思いますが、テストに余計な時間がかかるので、files の下を監視しています。

package jp.winofsql.app01;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.FileObserver;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ClickAndCallActivity extends Activity {
	private static final String TAG = "Call";
	private static final boolean D = true;
	
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		if(D) Log.i(TAG, "+++ ON CREATE : 初回の開始 +++");
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		observer.startWatching();


		// 呼び出しボタン( 自作アプリの結果取得 )
		Button btn4 = (Button) this.findViewById(R.id.button4);
		btn4.setOnClickListener(new OnClickListener() {  
			  
			 public void onClick(View v) {  
	
				 if(D) Log.i("呼び出し3", "------");
				 
				 Intent intent = new Intent();
				 intent.setClassName("jp.winofsql.app02", "jp.winofsql.app02.BatteryChangedActivity");
				 // 結果を取得する為の呼び出し( バッテリー残量の取得 )
				 startActivity(intent);

			}

		});

	}

	@Override
	public void onDestroy() {
		super.onDestroy();
		observer.stopWatching();
		if(D) {
			Log.i(TAG, "onDestroy に到達しました");
			Log.i(TAG, "--- ON DESTROY ---");
		}
	}

	// バッテリー残量取得アプリのフォルダを監視してデータを取得する
	private FileObserver observer = new FileObserver("/data/data/jp.winofsql.app02/files/") {

		@Override
		public void onEvent(int event, String path) {
			if (event == FileObserver.CLOSE_WRITE) {
				try{
					Context ctxt = createPackageContext("jp.winofsql.app02",0);
					FileInputStream input = ctxt.openFileInput("BatteryLevel.txt");  
					BufferedReader reader = new BufferedReader(new InputStreamReader(input));
					String line = reader.readLine();
					reader.close();
					Log.i(TAG, "--- ファイル監視の結果 ---");
					Log.i(TAG, line);
				}
				catch(Exception e) {
				 	Log.i(TAG, e.getMessage());
				}
			}
		}
	};

}




タグ:android
posted by at 2012-07-06 20:04 | Android Java | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します