Android Vibrar en el tacto?
Estoy intentando hacer que mi dispositivo vibre cuando toco un objeto en la pantalla. Estoy usando este código:
Vibrator v = (Vibrator) getSystemService(getApplicationContext().VIBRATOR_SERVICE); v.vibrate(300);
Con el permiso en el archivo de manifiesto, pero no parecen obtener ningún resultado. ¿Alguna sugerencia? Además, mi hardware soporta vibrar.
- Detección androide - shake
- Android: ¿Notification.DEFAULT_VIBRATE requiere permiso de vibración?
- Vibrar cuando se mantiene pulsado el botón
- ¿Cómo activar la vibración en la entrada de sonido?
- ¿Cómo hacer vibrar un dispositivo Android?
- ¿Cómo vibrar el dispositivo número n de veces a través de la programación en android?
- Cómo mantener el vibrador encendido indefinidamente de un servicio o receptor
- Patrón de vibración predeterminado del dispositivo Android
- Cómo Vibrar el patrón predeterminado del sistema en Android?
Por favor intente esto:
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; } });
Y agregue este permiso a manifest.xml
<uses-permission android:name="android.permission.VIBRATE"/>
De acuerdo con esta respuesta , puede realizar retroalimentación háptica (vibrar) sin pedir permisos adicionales. Mire el método performHapticFeedback
.
View view = findViewById(...) view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
Nota: No he probado este código.
Esto vibrará una vez, cuando el usuario toca la vista (no seguirá vibrando cuando el usuario todavía mueve su dedo):
@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; }
Y como Ramesh dijo, permita el permiso en manifiesto:
<uses-permission android:name="android.permission.VIBRATE"/>