J'ai écrit une application Android. Maintenant, je veux faire vibrer l'appareil lorsqu'une certaine action se produit. Comment puis-je faire ceci?
499
J'ai écrit une application Android. Maintenant, je veux faire vibrer l'appareil lorsqu'une certaine action se produit. Comment puis-je faire ceci?
Essayer:
import android.os.Vibrator;
...
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
// Vibrate for 500 milliseconds
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
v.vibrate(VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE));
} else {
//deprecated in API 26
v.vibrate(500);
}
Remarque:
N'oubliez pas d'inclure l'autorisation dans le fichier AndroidManifest.xml:
<uses-permission android:name="android.permission.VIBRATE"/>
vibrate(VibrationEffect)
place.Accorder l'autorisation de vibration
Avant de commencer à implémenter un code de vibration, vous devez donner à votre application la permission de vibrer:
Assurez-vous d'inclure cette ligne dans votre fichier AndroidManifest.xml.
Importer la bibliothèque de vibrations
La plupart des IDE le feront pour vous, mais voici l'instruction d'importation si la vôtre ne le fait pas:
Assurez-vous que dans l'activité où vous souhaitez que la vibration se produise.
Comment vibrer pendant un temps donné
Dans la plupart des cas, vous souhaiterez faire vibrer l'appareil pendant une courte période de temps prédéterminée. Vous pouvez y parvenir en utilisant la
vibrate(long milliseconds)
méthode. Voici un petit exemple:Voilà, c'est simple!
Comment vibrer indéfiniment
Il se peut que vous souhaitiez que l'appareil continue de vibrer indéfiniment. Pour cela, nous utilisons la
vibrate(long[] pattern, int repeat)
méthode:Lorsque vous êtes prêt à arrêter la vibration, appelez simplement la
cancel()
méthode:Comment utiliser les modèles de vibration
Si vous voulez une vibration plus sur mesure, vous pouvez essayer de créer vos propres modèles de vibration:
Des vibrations plus complexes
Il existe plusieurs SDK qui offrent une gamme plus complète de commentaires haptiques. L'une que j'utilise pour les effets spéciaux est la plate-forme de développement Haptic d'Immersion pour Android .
Dépannage
Si votre appareil ne vibre pas, assurez-vous d'abord qu'il peut vibrer:
Deuxièmement, assurez-vous d'avoir donné à votre application la permission de vibrer! Reportez-vous au premier point.
la source
La méthode de vibration (intervalle) de la mise à jour 2017 est déconseillée avec Android-O (API 8.0)
Pour prendre en charge toutes les versions d'Android, utilisez cette méthode.
Kotlin:
la source
getSystemService
parthis.getContext().getSystemService
Les réponses ci-dessus sont parfaites. Cependant, je voulais faire vibrer mon application exactement deux fois sur le bouton et cette petite information manque ici, d'où la publication pour de futurs lecteurs comme moi. :)
Nous devons suivre comme mentionné ci-dessus et le seul changement sera dans le modèle de vibration comme ci-dessous,
Cela vibrera exactement deux fois . Comme nous le savons déjà
On peut continuer encore et encore en mentionnant le retard et les vibrations (par exemple 0, 100, 1000, 300, 1000, 300 pour 3 vibrations et ainsi de suite ..) mais rappelez-vous que le mot de @ Dave l'utilise de manière responsable. :)
Notez également ici que le paramètre de répétition est défini sur -1, ce qui signifie que la vibration se produira exactement comme mentionné dans le motif . :)
la source
J'ai eu du mal à comprendre comment procéder sur ma première mise en œuvre - assurez-vous que vous disposez des éléments suivants:
1) Votre appareil prend en charge les vibrations (ma tablette Samsung ne fonctionnait pas, j'ai donc revérifié le code - le code d'origine fonctionnait parfaitement sur mon CM Touchpad
2) Vous avez déclaré au-dessus du niveau d'application dans votre fichier AndroidManifest.xml pour donner au code l'autorisation de s'exécuter.
3) Ont importé les deux éléments suivants dans votre MainActivity.java avec les autres importations: import android.content.Context; importer android.os.Vibrator;
4) Appelez votre vibration (discuté en détail dans ce fil déjà) - Je l'ai fait dans une fonction distincte et appelez cela dans le code à d'autres points - selon ce que vous voulez utiliser pour appeler la vibration, vous aurez peut-être besoin d'une image ( Android: clic long sur un bouton -> effectuer des actions ) ou un écouteur de bouton, ou un objet cliquable tel que défini en XML ( Image cliquable - android ):
la source
Vibrer sans utiliser l'autorisation
Si vous souhaitez simplement faire vibrer l'appareil une fois pour fournir un retour sur une action de l'utilisateur. Vous pouvez utiliser la
performHapticFeedback()
fonction d'unView
. Cela n'a pas besoin de l'VIBRATE
autorisation pour être déclaré dans le manifeste.Utilisez la fonction suivante en tant que fonction de niveau supérieur dans une classe courante comme Utils.kt de votre projet:
Et puis utilisez-le n'importe où dans votre
Fragment
ouActivity
comme suit:Aussi simple que cela!
la source
doit être ajouté à l'intérieur de la
<manifest>
balise et à l'extérieur de la<application>
balise.la source
J'utilise la méthode utils suivante:
Ajoutez l'autorisation suivante au fichier AndroidManifest
Vous pouvez utiliser des méthodes surchargées au cas où vous souhaiteriez utiliser différents types de vibrations (motifs / indéfinis) comme suggéré ci-dessus.
la source
La réponse ci-dessus est très correcte mais je donne une étape simple pour le faire:
Et puis dans votre fichier xml:
C'est le moyen le plus simple.
la source
Vibrant en motifs / vagues :
Plus
L'autorisation nécessaire dans
AndroidManifest.xml
:la source
Mise à jour Kotlin pour plus de sécurité de type
Utilisez-la comme fonction de niveau supérieur dans une classe courante de votre projet telle que Utils.kt
Et puis appelez-le n'importe où dans votre code comme suit:
Explication
L'utilisation
Vibrator::class.java
est plus sûre de type que l'utilisation deString
constantes.Nous vérifions la
vibrator
nullité à l'aidelet { }
, car si la vibration n'est pas disponible pour l'appareil, elle levibrator
seranull
.Il est correct de supprimer la dépréciation dans la
else
clause, car l'avertissement provient d'un SDK plus récent.Nous n'avons pas besoin de demander la permission lors de l'exécution pour utiliser les vibrations. Mais nous devons le déclarer
AndroidManifest.xml
comme suit:la source
Utilisez ceci:
Remarque:
N'oubliez pas d'inclure l'autorisation dans le fichier AndroidManifest.xml:
la source
Vous pouvez faire vibrer l'appareil et son travail
L'autorisation est nécessaire mais pas sur l'autorisation d'exécution requise
la source