2016-09-26 8 views
5

내 앱의 간단한 Shake 기능을 개발 중이며 이상한 문제에 직면했습니다. Honor5x에서 테스트 할 때 매력처럼 작동하지만 삼성 S5에서 수행하려고 할 때 너무 민감합니다. 가속도계가 다른 장치에서 다르게 작동하는 것이 가능합니까? 그렇다면 장치를 변경하는 가능성은 장치/가속도계 정확도에 달려 있습니까? - 그 샘플의 3/4 다음 가속하는 경우 그들은 일정 기간 내에서 샘플을 수집하고, seismicShake 이벤트는 다양한 장치에서 다르게 작동합니다. Shake Event 사용자 정의 구현

당신은 흔들림 감지 광장 라이브러리를 시도 할 수 있습니다

  gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0]; 
     gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1]; 

     float accX = event.values[0] - gravity[0]; 
     float accY = event.values[1] - gravity[1]; 
     float maxSpeed = Math.max(accX, accY); 
     if (maxSpeed > SHAKE_THRESHOLD) 
     { 
      if(shakesInRow == 0){ 
       shakesInRow++; 
       shakeTime = System.currentTimeMillis(); 
      }else{ 
       if((System.currentTimeMillis() - shakeTime) < SHAKE_TIME_DETECTOR){ 
        shakesInRow++; 
       }else{ 
        shakesInRow = 0; 
        shakeTime = 0; 
        return; 
       } 
       if(shakesInRow>= SHAKE_IN_ROW) { 
        shakesInRow= 0; 
        runMainActivity(); 
       } 
      } 
     } 

답변

1

: 여기 감지 떨림 이벤트에 대한 내 코드입니다 그것은 흔들리는 것을 의미합니다.

+0

감사합니다,이 라이브러리는 꽤 좋은 내 경우 작동합니다 :) –