Eu escrevi um aplicativo Android. Agora, quero fazer o dispositivo vibrar quando uma determinada ação ocorrer. Como posso fazer isso?
java
android
vibration
android-vibration
Billie
fonte
fonte
vibrate(VibrationEffect)
vez disso, use .Conceder permissão de vibração
Antes de começar a implementar qualquer código de vibração, você deve dar ao seu aplicativo a permissão para vibrar:
Certifique-se de incluir esta linha no seu arquivo AndroidManifest.xml.
Importar a biblioteca de vibração
A maioria dos IDEs fará isso por você, mas aqui está a declaração de importação, se a sua não:
Certifique-se disso na atividade em que deseja que a vibração ocorra.
Como vibrar por um tempo determinado
Na maioria das circunstâncias, você deseja vibrar o dispositivo por um período curto e predeterminado. Você pode conseguir isso usando o
vibrate(long milliseconds)
método Aqui está um exemplo rápido:É isso, simples!
Como vibrar indefinidamente
Pode ser que você queira que o dispositivo continue vibrando indefinidamente. Para isso, usamos o
vibrate(long[] pattern, int repeat)
método:Quando estiver pronto para parar a vibração, basta chamar o
cancel()
método:Como usar padrões de vibração
Se você deseja uma vibração mais personalizada, tente criar seus próprios padrões de vibração:
Vibrações mais complexas
Existem vários SDKs que oferecem uma gama mais abrangente de feedback háptico. Uma que eu uso para efeitos especiais é a Plataforma de Desenvolvimento Tátil da Immersion para Android .
Solução de problemas
Se o seu dispositivo não vibrar, primeiro verifique se ele pode vibrar:
Em segundo lugar, verifique se você concedeu ao seu aplicativo a permissão para vibrar! Consulte o primeiro ponto.
fonte
O método de vibração (intervalo) da atualização 2017 foi descontinuado com o Android-O (API 8.0)
Para oferecer suporte a todas as versões do Android, use este método.
Kotlin:
fonte
getSystemService
comthis.getContext().getSystemService
As respostas acima são perfeitas. No entanto, eu queria vibrar meu aplicativo exatamente duas vezes ao clicar no botão e essas pequenas informações estão faltando aqui, postando assim para futuros leitores como eu. :)
Temos que seguir como mencionado acima e a única mudança será no padrão de vibração, como abaixo,
Isso vibrará exatamente duas vezes . Como já sabemos
Pode-se continuar mencionando atraso e vibração alternativamente (por exemplo, 0, 100, 1000, 300, 1000, 300 para 3 vibrações e assim por diante ..), mas lembre-se da palavra de Dave, use-a com responsabilidade. :)
Observe também aqui que o parâmetro de repetição está definido como -1, o que significa que a vibração ocorrerá exatamente como mencionado no padrão . :)
fonte
Eu lutei para entender como fazer isso na minha primeira implementação - verifique se você tem o seguinte:
1) Seu dispositivo suporta vibração (meu tablet Samsung não funcionou, então eu continuei verificando novamente o código - o código original funcionou perfeitamente no meu CM Touchpad
2) Você declarou acima do nível do aplicativo no seu arquivo AndroidManifest.xml para dar permissão ao código para execução.
3) Importou os dois itens a seguir para o MainActivity.java com as outras importações: import android.content.Context; importar android.os.Vibrator;
4) Chame sua vibração (já discutimos extensivamente neste tópico) - eu fiz isso em uma função separada e chamei isso no código em outros pontos - dependendo do que você deseja usar para chamar a vibração, talvez seja necessário uma imagem ( Android: clique longo em um botão -> executar ações ) ou em um ouvinte de botão ou em um objeto clicável, conforme definido em XML ( imagem clicável - android ):
fonte
Vibrar sem usar permissão
Se você deseja simplesmente vibrar o dispositivo uma vez para fornecer um feedback sobre a ação do usuário. Você pode usar a
performHapticFeedback()
função de aView
. Isso não precisa daVIBRATE
permissão para ser declarada no manifesto.Use a seguinte função como uma função de nível superior em algumas classes comuns como Utils.kt do seu projeto:
E use-o em qualquer lugar do seu
Fragment
ou daActivity
seguinte maneira:Simples assim!
fonte
deve ser adicionado
<manifest>
tag interna e externa<application>
.fonte
Eu uso o seguinte método utils:
Adicione a seguinte permissão ao arquivo AndroidManifest
Você pode usar métodos sobrecarregados, caso deseje usar diferentes tipos de vibrações (padrões / indefinido), conforme sugerido acima.
fonte
A resposta acima está muito correta, mas estou dando um passo fácil para fazer isso:
E então no seu arquivo xml:
Essa é a maneira mais fácil.
fonte
Vibrando em padrões / ondas :
Mais
A permissão necessária em
AndroidManifest.xml
:fonte
Atualização Kotlin para mais segurança de tipo
Use-o como uma função de nível superior em algumas classes comuns do seu projeto, como Utils.kt
E, em seguida, chame-o em qualquer lugar do seu código da seguinte maneira:
Explicação
Usar
Vibrator::class.java
é mais seguro do que usarString
constantes.Verificamos a
vibrator
nulidade usandolet { }
, porque, se a vibração não estiver disponível para o dispositivo,vibrator
seránull
.Não há problema em suprimir a descontinuação na
else
cláusula, porque o aviso é do SDK mais recente.Não precisamos pedir permissão em tempo de execução para usar vibração. Mas precisamos declarar da
AndroidManifest.xml
seguinte forma:fonte
Usa isto:
Nota:
Não se esqueça de incluir permissão no arquivo AndroidManifest.xml:
fonte
Você pode vibrar o dispositivo e seu trabalho
A permissão é necessária, mas não a permissão de tempo de execução necessária
fonte