我試圖讓我的設備在屏幕上觸摸對象時發生振動。我正在使用此代碼:Android觸摸震動?
Vibrator v = (Vibrator) getSystemService(getApplicationContext().VIBRATOR_SERVICE);
v.vibrate(300);
具有清單文件中的權限,但我似乎沒有得到任何結果。 有什麼建議嗎?另外,我的硬件支持振動。
我試圖讓我的設備在屏幕上觸摸對象時發生振動。我正在使用此代碼:Android觸摸震動?
Vibrator v = (Vibrator) getSystemService(getApplicationContext().VIBRATOR_SERVICE);
v.vibrate(300);
具有清單文件中的權限,但我似乎沒有得到任何結果。 有什麼建議嗎?另外,我的硬件支持振動。
請試試這個:
Button b = (Button) findViewById(R.id.button1);
b.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
Vibrator vb = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vb.vibrate(100);
return false;
}
});
並添加此權限的manifest.xml
<uses-permission android:name="android.permission.VIBRATE"/>
據this answer,你可以不要求任何額外的權限執行觸覺反饋(振動)。看performHapticFeedback
方法。
View view = findViewById(...)
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
注意:我還沒有測試過這段代碼。
。有用。 – 2014-09-07 06:46:55
我發現這個有點弱。有沒有更強烈的觸摸振動? – santafebound 2016-09-12 18:08:09
非常好!正是我需要的。非常感謝你。 – DmitryKanunnikoff 2017-08-10 13:26:41
這會振動一次,當用戶觸摸視圖(不會讓振動時,用戶仍然將他的手指!):
@Override
public boolean onTouch(View view, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(VIBRATE_DURATION_MS);
}
return true;
}
而作爲拉梅什說,允許許可清單中:
<uses-permission android:name="android.permission.VIBRATE"/>
它工作正常,我認爲你在錯誤的小部件上實施onTouch方法請再次檢查。因爲他們是沒有問題的振動代碼。 – 2012-01-31 13:59:15
這很好,但是當用戶繼續移動手指時,它會保持振動 - 不是一個很好的用戶體驗 - 請參閱我的答案,下面解決了這個問題我測試了這個 – Mercury 2017-02-02 20:51:24