Prefacio
Cuando WeChat era popular, cuando aún podía ser utilizado para ello, también sostuve mi teléfono en medio de la noche. En ese momento, lo que más pensaba es que confía en ello para sacudir tanto para Shenma. demasiado alto. Después de mucho, necesito resolver el problema de la vibración en el proyecto recientemente.
principio
El principio básico de sacudir la función es usar el sensor de aceleración del teléfono móvil para alcanzar un cierto valor cuando la aceleración alcanza un cierto valor, como la vibración del teléfono móvil y los cambios en la interfaz de usuario. Para implementar esta función aquí, en primer lugar, debe comprender el uso del sensor Android.
Uso del sensor del sensor de Android
Hay una variedad de sensores en Android. Sin embargo, no todos los teléfonos móviles tienen estos sensores, porque el sensor necesita dinero, por lo que los teléfonos móviles baratos elegirán sensores de uso común para agregar, y algunos modelos de alta gerencia básicamente tienen la mayoría de los sensores.
Pasos de uso del sensor
Los pasos de uso de los sensores de Android se pueden dividir aproximadamente en tres pasos:
1. Obtenga el objeto de servicio de gestión del sensor Sensormanager.
2. Cree una clase de monitoreo de eventos de sensor que debe implementar Android.hardware.sensoreventListener Interface.
3. Use el método Sensormanager.RegisterListener para registrar el sensor especificado.
Interfaz de eventos de sensor
SensoreVentListener Interface, OnsensorChanged () y OnacCuracyChanged () de la interfaz para manejar los eventos del sensor correspondientes.
Public Interface SensorEventListener { /** * llamado cuando los valores del sensor han cambiado. }. ser parte de un interung y puede ser el trabajo de reutilización. P> Ver {@link android.sensormanager sensorManager} * para más detalles.
Implementación de vibraciones de Android
El efecto de vibración de Android se basa principalmente en el servicio vibrador.
Importar android.app.activity; Vibrator_service); ?
Al mismo tiempo, debe agregar permisos de vibración a AndroidManifest.xml:
<Use-permission android: name = "android.permission.vibrate"/>
Explique los parámetros del método Vibrate:
1. Largos milisegundos: la longitud de la vibración, la unidad es milisegundos.
2. Patrón largo []: modo de vibración personalizado. El significado de los números en la matriz es [duración estática, duración de la vibración, tiempo estático, tiempo de vibración, ...]. La unidad con un tiempo de vibración es milisegundos.
3. Repita: si repetir la vibración, 1 se repite, -1 es solo la vibración una vez.
Agitar la realización de la demostración de vibraciones
Bueno, debe comprender que debe usar el sensor de aceleración para usar el sensor de aceleración. La clase MainActivity se implementa de la siguiente manera:
Importar android.app.Activity; Hardware.sensorventListener; Privado boolean isrefresh = false; Int) {isRefresh = falso; ") .create ();}} @Override protegido void onresume () {sensorManager.registerListener (shakeListener, sensorManager.getDefaultSor (sensor.type_accelerometer), s ensonererer.sensor_delay_fastest); super.onresume ();}} @Override protegido OnPause () {// Acitividad en segundo plano, cancele la prisión y escuche la prisión .UnregisterListener (Shakelistener); Onsensorchnted (sensorEvent) {// log. (isRefresh) {return;} float []] valores = event.values; La aceleración de la gravedad de la dirección del eje del eje es hacia adelante*/ float x = math.abs (valor [0]); [2]); > = acelerate_value || z> = acelerate_value) {toast.maketeext (mainActivity.THIS, "Velocidad de acelerar:" + (x> = acelerate_value? X: y> = Acelerate e_value? Y: z), toast.length_short). ()
Mapa de efecto: