2016-07-28 97 views
2

我想在用戶晃動設備10次時碰到一個API。我已經嘗試了很多git簡單和堆棧溢出解決方案,但其中沒有一個可以解決我的問題。一些Git庫正在工作,但在10次之前或10次之後檢測到搖動。 i have tried this library
and this庫。請給我一些有價值的解決方案。在Android中檢測抖動

+0

這並不是那麼簡單,連續多次搖動。我相信你需要自己定義什麼是**抖動**和兩次抖動之間的**超時**,以便滿足我已經嘗試的解決方案 – NitroNbg

回答

1

使用SensorListener

請檢查該勾選答案...

你必須調整SHAKE_THRESHOLD值來實現這一

How to detect shake event with android?

謝謝!

+0

。但沒有爲我工作 –

+1

請粘貼你的代碼 –

0

有一個靜態變量,每次檢測到震動時都會增加。

static int count = 0; 
public void onSensorChanged(SensorEvent event) { 
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { 
    long curTime = System.currentTimeMillis(); 
    if ((curTime - mLastShakeTime) > MIN_TIME_BETWEEN_SHAKES_MILLISECS) { 

     float x = event.values[0]; 
     float y = event.values[1]; 
     float z = event.values[2]; 

     double acceleration = Math.sqrt(Math.pow(x, 2) + 
       Math.pow(y, 2) + 
       Math.pow(z, 2)) - SensorManager.GRAVITY_EARTH; 

     if (acceleration > SHAKE_THRESHOLD) { 
      mLastShakeTime = curTime; 
      count++; 
      if(count==10){ 
       //your code goes here 
      } 
     } 
    } 
}