왼쪽, 오른쪽, 위아래 떨림을 감지하려고합니다. 나는이 코드를 연구하고 발견했다.가속도계 떨림 감지 android
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
float[] values = event.values;
// Movement
float x = values[0];
float y = values[1];
float z = values[2];
long actualTime = System.currentTimeMillis();
if ((actualTime - lastUpdate) > 100)
{
long diffTime = (actualTime - lastUpdate);
lastUpdate = actualTime;
if(Round(x,4)>8.0000){
Log.d("sensor", "=====LEFT====");
}
else if(Round(x,4)<-8.0000){
Log.d("sensor", "=====RIGHT====");
}
else if(Round(z,4) < -0.0){
Log.d("sensor", "=====UP====");
}
else if(Round(y,4) < 1.0){
Log.d("sensor", "=====DOWN====");
}
float speed = Math.abs(x+y+z - last_x - last_y - last_z)/diffTime * 10000;
if (speed > SHAKE_THRESHOLD) {
//Log.d("sensor", "shake detected w/ speed: " + speed);
//Toast.makeText(this, "shake detected w/ speed: " + speed, Toast.LENGTH_SHORT).show();
}
last_x = x;
last_y = y;
last_z = z;
}
}
}
나는 그것을 연구하려고했지만 몇 가지 질문이 있습니다.
1. 흔들림 감지 후 어디에서 지연을 설정할 수 있습니까? 마지막으로 감지 된 쉐이크 중 1 초 후에 쉐이크를 감지하고 싶습니다.
2. 평평한 표면에 놓으면 항상 아래쪽을 감지합니다.
3. 올바른 움직임을 감지 할 수 없습니다.
모든 도움과 제안을 부탁드립니다.
이 코드는 내 앱에 적합합니다. 평평한 표면에 놓을 때 움직임을 막을 수있는 해결책을 제안 할 수 있습니까? 올바른 움직임으로 인해 두통이 생깁니다. . – ljpv14