Prefácio
Quando o WeChat era apenas popular, quando eu ainda podia ser usado para isso, também segurei meu telefone no meio da noite. Naquela época, o que eu mais pensava era que eu confiava nele para agitar tanto para Shenma. muito alto. Depois de muito, preciso resolver o problema de vibração no projeto recentemente.
princípio
O princípio básico de agitar a função é usar o sensor de aceleração do telefone celular para atingir um determinado valor quando a aceleração atingir um determinado valor, como vibração do telefone celular e alterações na interface do usuário. Para implementar essa função aqui, antes de tudo, você precisa entender o uso do sensor Android.
Uso do sensor Android
Atualmente, há uma variedade de sensores no Android. No entanto, nem todos os telefones celulares têm esses sensores, porque o sensor precisa de dinheiro, portanto, os telefones celulares baratos escolherão sensores comumente usados para adicionar, e alguns modelos altos -basicamente têm a maioria dos sensores.
Sensor Use etapas
As etapas de uso dos sensores Android podem ser divididas aproximadamente em três etapas:
1. Obtenha o objeto de serviço de gerenciamento de sensores Sensormanager.
2. Crie uma classe de monitoramento de eventos de sensor que deve implementar a interface Android.hardware.sensoreventListener.
3. Use o método sensorManager.ReGisterListener para registrar o sensor especificado.
Interface do evento do sensor
Interface sensoreventListener, OnsensorChanged () e OnaccuracyChanged () da interface para lidar com os eventos do sensor correspondente.
Interface pública sensoreventListener { /** * Chamado quando os valores do sensor foram alterados. }. Faça parte de um interung e pode ser reutilizado p> Veja {@link Android.sensormanager Sensormanager} * Para obter detalhes.
Implementação de vibração do Android
O efeito de vibração do Android é baseado principalmente no serviço de vibrador.
Importar Android.App.Activity; Vibrador_service); 1: -1);}}
Ao mesmo tempo, você precisa adicionar permissões de vibração ao androidmanifest.xml:
<Usa-permission Android: name = "android.permission.vibrate"/>
Explique os parâmetros do método Vibrate:
1. Milissegundos de longa duração: o comprimento da vibração, a unidade é milissegundos.
2. Padrão de comprimento []: Modo de vibração personalizada. O significado dos números na matriz é [duração estática, duração da vibração, tempo estático, tempo de vibração, ...]. A unidade com um tempo de vibração é milissegundos.
3. Repita: se deve repetir a vibração, 1 é repetido, -1 é apenas vibração uma vez.
Agite a realização da demonstração da vibração
Bem, você precisa entender que você precisa usar o sensor de aceleração para usar o sensor de aceleração. A classe MainActivity é implementada da seguinte maneira:
Importar Android.Activy; Hardware.senseventListener; Private boolean isrefresh = false; Int) {isrefresh = false; ") .create ();}} @Override Protected void onresume () {Sensormanager.registerListener (Shakelistener, Sensormanager.getDefaultSor (Sensor.Type_accelerometer), s ENSONAGER.SENSOR_DELAY_FASTEST); Super.onResume ();}} @Override Protected void OnPause () {// Acitividade em segundo plano, cancele a prisão e ouvindo a prisão Onsensorchnted (sensorevent) {// log. (isRefresh) {return;} float []] valores = event.values; A aceleração da gravidade da direção do eixo do eixo é a frente*/ FLOAT X = MATH.ABS (valor [0]); [2]); > = acelerar_value || z> = acelerar_value) {Toast.makeText (MainActivity.This, "Acelere a velocidade:" + (x> = aceleração_value? x: y> ();
Mapa de efeitos: