2013년 1월 3일 목요일

[기울기 센서]

package com.example.an19_accelarator;

import java.util.List;

import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements SensorEventListener {
TextView tv1, tv2, tv3;
SensorManager manager;
Sensor sensor;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1 = (TextView) findViewById(R.id.textView1);
tv2 = (TextView) findViewById(R.id.textView2);
tv3 = (TextView) findViewById(R.id.textView3);
manager  = (SensorManager) getSystemService(SENSOR_SERVICE);
List <Sensor> list = manager.getSensorList(SensorManager.SENSOR_ACCELEROMETER);
if(list != null){
sensor = list.get(0); // 가속도 센서를 얻음
Toast.makeText(this, "센서 존재"+sensor.getName(), 0).show();

}else{
Toast.makeText(this, "센서 없음", 0);
}
}

protected void onResum(){
super.onResume();
// 센서 작동 감시해
manager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_GAME);
}

protected void onPause(){
super.onPause();
//센서 멈춤
manager.unregisterListener(this,sensor);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub

}

/* AnroidManifext.xml 에서 화면이 돌아가지 않도록 고정
* Activity : screen orientation : portrait(세로) landscape(가로)*/

@Override //값이 들어오면 호출
public void onSensorChanged(SensorEvent e) {
// -9.8 ~ 9.8 까지
float[] values = e.values;
float x = values[0];
float y = values[1];
float z = values[2];
tv1.setText("x 가속도" + x);
tv2.setText("x 가속도" + y);
tv3.setText("x 가속도" + z);
}

}


댓글 없음:

댓글 쓰기

문의하기

이름

이메일 *

메시지 *