Escribí una aplicación de Android. Ahora, quiero hacer que el dispositivo vibre cuando ocurra cierta acción. ¿Cómo puedo hacer esto?
java
android
vibration
android-vibration
Billie
fuente
fuente
vibrate(VibrationEffect)
lugar, úselo.Conceder permiso de vibración
Antes de comenzar a implementar cualquier código de vibración, debe otorgar a su aplicación el permiso para vibrar:
Asegúrese de incluir esta línea en su archivo AndroidManifest.xml.
Importar la biblioteca de vibraciones
La mayoría de los IDEs lo harán por usted, pero aquí está la declaración de importación si la suya no lo hace:
Asegúrese de esto en la actividad donde desea que ocurra la vibración.
Cómo vibrar por un tiempo dado
En la mayoría de los casos, deseará hacer vibrar el dispositivo durante un período de tiempo corto y predeterminado. Puede lograr esto utilizando el
vibrate(long milliseconds)
método Aquí hay un ejemplo rápido:Eso es todo, simple!
Cómo vibrar indefinidamente
Es posible que desee que el dispositivo continúe vibrando indefinidamente. Para esto, utilizamos el
vibrate(long[] pattern, int repeat)
método:Cuando esté listo para detener la vibración, simplemente llame al
cancel()
método:Cómo usar patrones de vibración
Si desea una vibración más personalizada, puede intentar crear sus propios patrones de vibración:
Vibraciones más complejas
Hay varios SDK que ofrecen una gama más completa de comentarios táctiles. Una que uso para efectos especiales es la plataforma de desarrollo háptico de Immersion para Android .
Solución de problemas
Si su dispositivo no vibra, primero asegúrese de que pueda vibrar:
En segundo lugar, asegúrese de haber otorgado a su aplicación el permiso para vibrar. Refiérase al primer punto.
fuente
El método de actualización 2017 de vibración (intervalo) está en desuso con Android-O (API 8.0)
Para admitir todas las versiones de Android, use este método.
Kotlin:
fuente
getSystemService
conthis.getContext().getSystemService
Las respuestas anteriores son perfectas. Sin embargo, quería hacer vibrar mi aplicación exactamente dos veces al hacer clic en el botón y esta pequeña información falta aquí, por lo tanto, la publicación para futuros lectores como yo. :)
Tenemos que seguir como se mencionó anteriormente y el único cambio será en el patrón de vibración como se muestra a continuación,
Esto vibrará exactamente dos veces . Como ya sabemos
Uno puede seguir y mencionar el retraso y la vibración alternativamente (por ejemplo, 0, 100, 1000, 300, 1000, 300 para 3 vibraciones, etc.), pero recuerde que la palabra de @ Dave lo usa responsablemente. :)
También tenga en cuenta aquí que el parámetro de repetición se establece en -1, lo que significa que la vibración ocurrirá exactamente como se menciona en el patrón . :)
fuente
Me costó entender cómo hacer esto en mi primera implementación; asegúrese de tener lo siguiente:
1) Su dispositivo admite vibración (mi tableta Samsung no funcionaba, así que seguí revisando el código; el código original funcionó perfectamente en mi panel táctil CM
2) Ha declarado por encima del nivel de aplicación en su archivo AndroidManifest.xml para dar permiso al código para ejecutarse.
3) Ha importado los dos siguientes en su MainActivity.java con las otras importaciones: import android.content.Context; importar android.os.Vibrator;
4) Llame a su vibración (ya se discutió ampliamente en este hilo): lo hice en una función separada y llamo a esto en el código en otros puntos, dependiendo de lo que quiera usar para llamar a la vibración, puede necesitar una imagen ( Android: clic largo en un botón -> realizar acciones ) o escucha de botón, o un objeto en el que se puede hacer clic como se define en XML ( imagen en la que se puede hacer clic - android ):
fuente
Vibrar sin usar permiso
Si desea simplemente hacer vibrar el dispositivo una vez para proporcionar comentarios sobre una acción del usuario. Puedes usar la
performHapticFeedback()
función de aView
. Esto no necesita elVIBRATE
permiso para ser declarado en el manifiesto.Utilice la siguiente función como función de nivel superior en alguna clase común como Utils.kt de su proyecto:
Y luego úsalo en cualquier lugar de tu
Fragment
o de laActivity
siguiente manera:¡Simple como eso!
fuente
debe agregarse dentro de la
<manifest>
etiqueta y fuera de la<application>
etiqueta.fuente
Yo uso el siguiente método de utilidades:
Agregue el siguiente permiso al archivo AndroidManifest
Puede utilizar métodos sobrecargados en caso de que desee utilizar diferentes tipos de vibraciones (patrones / indefinidos) como se sugirió anteriormente.
fuente
La respuesta anterior es muy correcta, pero estoy dando un paso fácil para hacerlo:
Y luego en tu archivo xml:
Esa es la forma más fácil .
fuente
Vibrando en patrones / ondas :
Más
El permiso necesario en
AndroidManifest.xml
:fuente
Actualización de Kotlin para mayor seguridad de tipo
Úselo como una función de nivel superior en alguna clase común de su proyecto, como Utils.kt
Y luego llámalo a cualquier parte de tu código de la siguiente manera:
Explicación
Usar
Vibrator::class.java
es más seguro de tipo que usarString
constantes.Verificamos el
vibrator
uso de nulabilidadlet { }
, porque si la vibración no está disponible para el dispositivo, lovibrator
estaránull
.Está bien suprimir la degradación en
else
cláusula, porque la advertencia es de un SDK más reciente.No necesitamos pedir permiso en tiempo de ejecución para usar la vibración. Pero tenemos que declararlo de la
AndroidManifest.xml
siguiente manera:fuente
Utilizar este:
Nota:
No olvide incluir el permiso en el archivo AndroidManifest.xml:
fuente
Puedes vibrar el dispositivo y su trabajo
El permiso es necesario pero no en tiempo de ejecución.
fuente