¿Cómo vibrar el dispositivo número n de veces a través de la programación en android?
puede alguien decirme cómo vibrar el mismo patter 5 veces como este mi patrón
long[] pattern = { 0, 200, 500 };
- ¿Cómo hacer vibrar un dispositivo Android?
- Detección androide - shake
- ¿Cómo activar la vibración en la entrada de sonido?
- Cómo Vibrar el patrón predeterminado del sistema en Android?
- Vibrar cuando se mantiene pulsado el botón
quiero que este patrón se repita 5 veces
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); vibrator.vibrate(pattern , 5);
- Cómo mantener el vibrador encendido indefinidamente de un servicio o receptor
- Android: ¿Notification.DEFAULT_VIBRATE requiere permiso de vibración?
- Patrón de vibración predeterminado del dispositivo Android
- Android Vibrar en el tacto?
Encontré la solución, era muy simple:
long[] pattern = { 0, 100, 500, 100, 500, 100, 500, 100, 500, 100, 500}; vibrator.vibrate(pattern , -1);
Su código debe hacer el truco. Sólo asegúrate de tener <uses-permission android:name="android.permission.VIBRATE"/>
en el archivo AndroidManifest.xml
.
Lo siguiente funciona para mí:
if(vibration_enabled) { final Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); if(v.hasVibrator()) { final long[] pattern = {0, 1000, 1000, 1000, 1000}; new Thread(){ @Override public void run() { for(int i = 0; i < 5; i++){ //repeat the pattern 5 times v.vibrate(pattern, -1); try { Thread.sleep(4000); //the time, the complete pattern needs } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } }
El método de vibración sólo inicia la vibración, pero no espera hasta que se ejecute.
Además de las soluciones dadas anteriormente, he creado mi propio patrón de vibración donde puedo controlar el tamaño de duración entre las vibraciones. startVibration () crea un patrón de vibración regular continuo durante un minuto.
stopVibration () – Termina la vibración o hace una pausa en el counterTimer interrumpiendo así el patrón de vibración.
public void startVibration(){ counterD = new CountDownTimer(60000, 1000) { public void onTick(long millisUntilFinished) { time = (int) (millisUntilFinished / 1000); txt.setText("Muttiple Pattern vibration! ("+String.valueOf(time)+")"); int[] timeLapse = {58, 55, 52, 49, 46, 43, 40, 37, 34, 31, 28, 25, 22, 19, 16, 13, 10, 7, 4, 1}; //Log.d("Time count", String.valueOf(time)); Log.d("Timer show", String.valueOf(time)); for (int k = 0; k < timeLapse.length; k++) { if (time == timeLapse[k]) { ((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(1000); } } } public void onFinish() { } }.start(); } public void stopVibration(){ counterD.cancel(); }