Android Vibrate на ощупь?

Я пытаюсь заставить свое устройство вибрировать, когда касаюсь объекта на экране. Я использую этот код:

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"/> 

В соответствии с этим ответом вы можете выполнять тактическую обратную связь (вибрировать), не запрашивая никаких дополнительных разрешений. Посмотрите на метод performHapticFeedback .

 View view = findViewById(...) view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); 

Примечание. Я не тестировал этот код.

Это будет вибрировать один раз, когда пользователь коснется просмотра (не будет вибрировать, когда пользователь все еще двигает пальцем!):

 @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"/> 
Intereting Posts