private class accListener implements SensorEventListener{ 
   @Override
   public void onSensorChanged(SensorEvent event) {
    
     if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { 
               long currentTime = System.currentTimeMillis(); 
               long gabOfTime = (currentTime - lastTime); 
      
               if (gabOfTime > 70) { 
                   lastTime = currentTime; 
      
                   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) { 
                       // 이벤트 발생!!                   
                    vibe.vibrate(100);                    
                    count++; 
                    if(count>3 && count<=6){
                     count-=3;
                    }if(count>6){
                     count=0;
                    }
                    shake.setText(count+"번");
                    startHandler(count);
                    
                   } 
                   lastX = event.values[DATA_X]; 
                   lastY = event.values[DATA_Y]; 
                   lastZ = event.values[DATA_Z]; 
                   } 
           } 
       }
 


 

 
private void startHandler(final int ct) {
      Handler startHandler = new Handler();
      startHandler.postDelayed(new Runnable() {
       public void run() {
           if(ct==count){
                       Toast.makeText(shake.this, count+"번 감지", Toast.LENGTH_SHORT).show();
                       count=0;
                       shake.setText("0");
         }
        }
      }, 1500);    
     }


 

 

 

몇번 질문드렸는데 답글이 없어서..ㅜㅜㅜㅜㅜ

 

단말기를 흔들어서 정확하게 1번, 2번, 3번을 감지해야되는데

정확하게 감지가 안되서요,

핸들러 사용해서 더이상 움직임이 없을경우 몇번 감지되었다는 토스트메시지를 띄우는 방식이구요.

 

1번, 2번, 3번을 정확하게 잡아내야 하는데

고수님들 제발 도와주세요 제발제발 ...

 

아! 혹시 이 어플이 이해가 안가시는 분은 "ShakeRun"이라는 어플리케이션 참조하시면 될거에요..

http://blog.naver.com/painhouse?Redirect=Log&logNo=70112100820