2010-06-24 15 views
6

De hecho, tengo una aplicación que pruebo con dos dispositivos. Un LG GW620 y un Samsung Spica. Me gustaría que cuando el usuario toque la pantalla, el dispositivo vibre.Android - El dispositivo vibrador no funciona

De hecho, en el LG GW620, el dispositivo vibra cuando lo toco. Pero en la spica no ...

Busqué configuraciones en la spica, pero el vibrador es de verificación, así que no entiendo por qué no vibra.

En mi aplicación tengo: <uses-permission android:name="android.permission.VIBRATE"></uses-permission>

y en el código:

Vibrator vibrator =(Vibrator)getSystemService(Context.VIBRATOR_SERVICE); 
      vibrator.vibrate(100); 

pero creo que no es el mejor que puede hacer eso. Deseo que el dispositivo vibre por cada clic, pero no sé si tengo que hacer un vibrador para cada OnClick. ¿O si pudiera hacer solo un vibrador para toda la aplicación?
¿Y especialmente por qué no funciona en Spica?

+14

Este es el mejor título de pregunta que he visto en Stack Overflow. ¡La comedia! – theorise

+2

Soy francés, acabo de poner "Vibrador" porque se llama así en Android ... pero veo que vibrador tiene doble significado <_ < – Nanis

+5

Su uso es correcto, pero esto tiene un doble significado (al menos En América). No me preocuparía, la pregunta en sí es clara. – Chimmy

Respuesta

4

Gracioso. En su onClick para el botón, debe poner la vibración. Y dado que es en milisegundos, pondría algo así como 500 por medio segundo en lugar de .1 segundos.

void onCreate() { 

    mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 

    Button b = (Button) findViewById(R.id.button); 
    b.setOnClickListener(new View.OnClickListener() { 
     void onClick() { 
      mVibrator.vibrate(500); 
     } 
    }); 
} 
+0

ok, ¿entonces debo hacerlo para cada botón/ImageView de mi aplicación? No hay otra manera ? Porque tengo 30 o 40 botones en mi aplicación, así que será muy largo. – Nanis

+1

Si está utilizando el 1.6 SDK (versión 4), Views puede tener un método onClick establecido en el xml. Por lo tanto, para cada botón, puede configurar OnClick y en su actividad, el método debe tener una coincidencia de sign4 onClick (Ver v) donde v se haga clic en el botón. Para cada botón, configure android: onClick = "onClick" donde onClick es el nombre del método onClick en su Actividad. http://developer.android.com/reference/android/R.attr.html#onClick –

+0

Muchas gracias por su respuesta, esto es útil. ¿Tienes alguna idea de por qué Spica no vibra, mientras que LG GW620? – Nanis

0

Casi todas las soluciones en Internet parecen perder algo. . (contexto) aquí está una solución de trabajo . . .

Vibrator v = (Vibrator) getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE); 
    v.vibrate(100); 
Cuestiones relacionadas