2014-08-29 93 views
-1

我只是好奇,如果我的應用程序會制定出這樣使它振動時,手機震動:如何讓Android手機在抖動時發生振動?

if(event.values[0] > 1.0) { 
    vibrator.vibrate(500); 
} 
else { 
    if(event.values[1] > 1.0) 
    vibrator.vibrate(500); 
} 

我在做什麼是SensorEventListener,我和組合2名的聽衆。

這樣做會不會這樣做?我無法測試它,因爲我不擁有Android手機,所以我問(編程方式)這是否可能。

回答

1

是的,它會以這種方式工作。只要確保在手機振動的500毫秒內停止處理傳感器事件。

boolean isVibrating = false; 
Handler handler = new Handler(Looper.getMainLooper()); 

if(!isVibrating){ 
    if(event.values[0] > 1.0) { 
     vibrate(500); 
    } else if(event.values[1] > 1.0){ 
     vibrate(500); 
    } 
} 

void vibrate(long time){ 
    isVibrating = true; 
    vibrator.vibrate(time); 
    handler.postDelayed(new Runnable(){ 
      public void run(){ 
       isVibrating = false; 
      } 
     }, 
     time) 
} 
+0

感謝您的回答。停止處理部分:我應該使用哪種方法?取消()? – Rido 2014-08-29 18:53:16

+0

我不認爲你需要停止收聽傳感器。只需切換一個標誌並將代碼包裝在「if」中即可。 – 2014-08-29 19:02:00

+0

我已經用示例代碼更新了答案。我沒有測試過,所以它可能有語法錯誤,但我希望你明白。 – 2014-08-29 19:08:27