핸드폰화면을 하늘을 향해서 두고 위아래로 천천히 움직이면 카운트가 올라가도록 하려면 어느 부분을 어떻게 고쳐야 할까요 도와주세요~
소스입니당.
import java.security.PublicKey;
import android.graphics.Color;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.ToggleButton;
public class SquatActivity extends Activity implements SensorEventListener {
private long lastTime;
private float speed;
private float lastX;
private float lastY;
private float lastZ;
private float x, y, z;
private static final int SHAKE_THRESHOLD = 800;
private static final int DATA_X = SensorManager.DATA_X;
private static final int DATA_Y = SensorManager.DATA_Y;
private static final int DATA_Z = SensorManager.DATA_Z;
private SensorManager sensorManager;
private Sensor accelerometer;
private TextView prox;
private int testNum = 0;
float num;
private SoundPool sp4;
private int id4;
ToggleButton tb4;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pedomete);
sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
prox = (TextView)findViewById(R.id.prox);
prox.setTextColor(Color.BLACK);
// sp = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
// id = sp.load(this, R.raw.sound01, 1);
ImageButton help4 = (ImageButton)findViewById(R.id.help4);
ImageButton reset4 = (ImageButton)findViewById(R.id.reset4);
help4.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
});
help4.setBackgroundColor(Color.TRANSPARENT);
reset4.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
testNum =0;
prox.setText(""+testNum);
}
});
reset4.setBackgroundColor(Color.TRANSPARENT);
tb4 = (ToggleButton)findViewById(R.id.tb4);
tb4.setChecked(true);
tb4.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(tb4.isChecked()){
tb4.setBackgroundDrawable(getResources().getDrawable(R.drawable.musicon));
} else {
tb4.setBackgroundDrawable(getResources().getDrawable(R.drawable.musicoff));
}
}
});
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
public void onStart() {
super.onStart();
if (accelerometer != null){
sensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_FASTEST);
}
}
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
x = event.values[0];
y = event.values[1];
z = event.values[2];
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
long currentTime = System.currentTimeMillis();
long gabOfTime = (currentTime - lastTime);
if (gabOfTime < 10 ||gabOfTime<5) {
lastTime=currentTime;
num=event.values[0];
// x = event.values[SensorManager.DATA_X];
// y = event.values[SensorManager.DATA_Y];
// z = event.values[SensorManager.DATA_Z];
speed = Math.abs(x + y + z - lastX - lastY - lastZ) /
gabOfTime * 10000;
if (speed > SHAKE_THRESHOLD) {
// 이벤트 발생
if(z < 180){
testNum ++;
if(y < 45 && tb4.isChecked()){
// sp2.play(id2, 1, 1, 0, 0, 1);
}
}
else {
}
prox.setText(""+testNum);
}
}
lastX = event.values[DATA_X];
lastY = event.values[DATA_Y];
lastZ = event.values[DATA_Z];
}
}
//
// protected void onResume() {
// super.onResume();
// // register this class as a listener for the orientation and accelerometer sensors
// sm.registerListener(this,
// SensorManager.SENSOR_ORIENTATION |SensorManager.SENSOR_ACCELEROMETER,
// SensorManager.SENSOR_DELAY_NORMAL);
// }
protected void onPaus(){
super.onPause();
sensorManager.unregisterListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}