package com.example.testsensordata;


    import java.util.List;
	import android.app.Activity;
	import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
	import android.hardware.Sensor;
	import android.hardware.SensorEvent;
	import android.hardware.SensorEventListener;
	import android.hardware.SensorManager;
	import android.os.Bundle;
	import android.os.Handler;
	import android.os.Message;
import android.view.View;
	import android.view.WindowManager;
	import android.widget.LinearLayout;
import android.widget.TextView;

	public class SensorData extends Activity  
								implements SensorEventListener {
	    private TextView txtView;
		// センサーマネージャ
		private SensorManager mSensorManager;
		private Sensor mAccelerometer;
		public float[] data = new float[3];
		
		private TickHandler tickHandler;

	    /** Called when the activity is first created. */
	    @Override
	    public void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        LinearLayout layout=new LinearLayout(this);
	        layout.setOrientation(LinearLayout.VERTICAL);
	        setContentView(layout);
	/*
	        scView=new ScrollView(this);
	        scView.setLayoutParams(new LinearLayout.LayoutParams(
	                LinearLayout.LayoutParams.MATCH_PARENT,
	                LinearLayout.LayoutParams.WRAP_CONTENT));
	        layout.addView(scView);
	*/
	        txtView=new TextView(this);
	        txtView.setText("");
	        txtView.setLayoutParams(new LinearLayout.LayoutParams(
	                LinearLayout.LayoutParams.MATCH_PARENT,
	                LinearLayout.LayoutParams.WRAP_CONTENT));
	        //scView.addView(txtView);
	        layout.addView(txtView);
	        // センサーマネージャのインスタンスを取得
	        mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
	        // センサーの取得
	        List<Sensor> list = mSensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
	        if (list.size()>0) {
	        	mAccelerometer = list.get(0);
	        }
	        // 画面のロックを防ぐ
	        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
	    }
	    @Override
	    public void onResume() {
	    	super.onResume();
	    	if (mAccelerometer!=null) {
	    		// SensorEventListenerを登録します
	    		mSensorManager.registerListener(this, mAccelerometer,SensorManager.SENSOR_DELAY_UI);
	    	}
	        //定期処理ハンドラの生成と実行
	        tickHandler=new TickHandler();
	        tickHandler.sleep(0);
	    }
	    public void onStop() {
	    	super.onStop();
			mSensorManager.unregisterListener(this);
			//定期処理ハンドラの停止
			tickHandler=null;
	    }

		public void onAccuracyChanged(Sensor sensor, int accuracy) {
			// TODO 自動生成されたメソッド・スタブ

		}

		public void onSensorChanged(SensorEvent event) {
			// TODO 自動生成されたメソッド・スタブ

			if (event.sensor.getType()!= Sensor.TYPE_ACCELEROMETER) {
				return;
			}
			float sensor = 1.5F;
			data[0] = 1.5F;//event.values[0];
			data[1] = event.values[1];
			data[2] = event.values[2];
			tensou();
		}
			public float tensou(){
			
			    return data[0];
		}
			
			public class TickHandler extends Handler {
				@Override
				public void handleMessage(Message msg) {
					String bufStr = new String();

					bufStr ="X軸" + data[0] + "\n"+"Y軸" + data[1] + "\n"+"Z軸" + data[2] + "\n";
				/*	
					SharedPreferences pref =getSharedPreferences("TestSensorDataActivity",MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE);
					SharedPreferences.Editor editor = pref.edit();
					editor.putString("xaxis", bufStr);
					editor.commit();
				*/

			    	txtView.setText(bufStr);
			    	if (tickHandler!=null) tickHandler.sleep(1000);
				}
				public void sleep(long delayMills) {
					removeMessages(0);	//使用済みのメッセージの削除
					/*
					 * obtainMessageはグローバル・メッセージ・プールにある
					 * インスタンスを使用することを指示する
					 */
					sendMessageDelayed(obtainMessage(0),delayMills);
				}
			}

		}
