Ich habe eine Android-Anwendung geschrieben. Jetzt möchte ich das Gerät vibrieren lassen, wenn eine bestimmte Aktion ausgeführt wird. Wie kann ich das machen?
java
android
vibration
android-vibration
Billie
quelle
quelle
vibrate(VibrationEffect)
stattdessen.Vibrationserlaubnis erteilen
Bevor Sie mit der Implementierung eines Vibrationscodes beginnen, müssen Sie Ihrer Anwendung die Berechtigung zum Vibrieren erteilen:
Stellen Sie sicher, dass diese Zeile in Ihre AndroidManifest.xml-Datei aufgenommen wird.
Importieren Sie die Vibrationsbibliothek
Die meisten IDEs erledigen dies für Sie, aber hier ist die Importanweisung, wenn Ihre dies nicht tut:
Stellen Sie dies in der Aktivität sicher, in der die Vibration auftreten soll.
Wie man für eine bestimmte Zeit vibriert
In den meisten Fällen möchten Sie das Gerät für eine kurze, vorgegebene Zeit vibrieren lassen. Sie können dies mit der
vibrate(long milliseconds)
Methode erreichen. Hier ist ein kurzes Beispiel:Das war's, einfach!
Wie man auf unbestimmte Zeit vibriert
Möglicherweise möchten Sie, dass das Gerät unbegrenzt weiter vibriert. Dafür verwenden wir die
vibrate(long[] pattern, int repeat)
Methode:Wenn Sie bereit sind, die Vibration zu stoppen, rufen Sie einfach die folgende
cancel()
Methode auf:Verwendung von Vibrationsmustern
Wenn Sie eine maßgeschneiderte Vibration wünschen, können Sie versuchen, Ihre eigenen Vibrationsmuster zu erstellen:
Komplexere Schwingungen
Es gibt mehrere SDKs, die ein umfassenderes Spektrum an haptischem Feedback bieten. Eine, die ich für Spezialeffekte verwende, ist Immersions Haptic Development Platform für Android .
Fehlerbehebung
Wenn Ihr Gerät nicht vibriert, stellen Sie zunächst sicher, dass es vibrieren kann:
Zweitens stellen Sie bitte sicher, dass Sie Ihrer Anwendung die Erlaubnis zum Vibrieren gegeben haben! Beziehen Sie sich auf den ersten Punkt.
quelle
Die Vibrationsmethode (Intervall) für das Update 2017 ist mit Android-O (API 8.0) veraltet.
Verwenden Sie diese Methode, um alle Android-Versionen zu unterstützen.
Kotlin:
quelle
getSystemService
mitthis.getContext().getSystemService
Die obigen Antworten sind perfekt. Ich wollte meine App jedoch genau zweimal beim Klicken auf die Schaltfläche vibrieren lassen, und diese kleinen Informationen fehlen hier, sodass sie für zukünftige Leser wie mich veröffentlicht werden. :) :)
Wir müssen wie oben erwähnt folgen und die einzige Änderung wird im Vibrationsmuster wie unten sein.
Dies wird genau zweimal vibrieren . Wie wir bereits wissen
Man kann Verzögerung und Vibration alternativ weiter erwähnen (z. B. 0, 100, 1000, 300, 1000, 300 für 3 Vibrationen usw.), aber denken Sie daran, dass @ Daves Wort es verantwortungsbewusst verwendet. :) :)
Beachten Sie auch hier, dass der Wiederholungsparameter auf -1 gesetzt ist, was bedeutet, dass die Vibration genau wie im Muster angegeben auftritt . :) :)
quelle
Bei meiner ersten Implementierung hatte ich Probleme zu verstehen, wie dies zu tun ist. Stellen Sie sicher, dass Sie Folgendes haben:
1) Ihr Gerät unterstützt Vibrationen (mein Samsung-Tablet funktionierte nicht, daher habe ich den Code immer wieder überprüft - der ursprüngliche Code funktionierte perfekt auf meinem CM Touchpad
2) Sie haben in Ihrer AndroidManifest.xml-Datei über der Anwendungsebene deklariert, um dem Code die Berechtigung zum Ausführen zu erteilen.
3) Sie haben beide der folgenden Elemente zusammen mit den anderen Importen in Ihre MainActivity.java importiert: import android.content.Context; android.os.Vibrator importieren;
4) Rufen Sie Ihre Vibration auf (in diesem Thread bereits ausführlich besprochen) - Ich habe es in einer separaten Funktion ausgeführt und dies an anderen Stellen im Code aufgerufen - je nachdem, was Sie zum Aufrufen der Vibration verwenden möchten, benötigen Sie möglicherweise ein Bild ( Android: langer Klick auf eine Schaltfläche -> Aktionen ausführen ) oder einen Schaltflächen-Listener oder ein anklickbares Objekt, wie in XML definiert ( anklickbares Bild - Android ):
quelle
Ohne Erlaubnis vibrieren
Wenn Sie das Gerät einfach einmal vibrieren möchten, um eine Rückmeldung zu einer Benutzeraktion zu erhalten. Sie können die
performHapticFeedback()
Funktion von a verwendenView
. Dies erfordert nicht dieVIBRATE
Berechtigung, im Manifest deklariert zu werden.Verwenden Sie die folgende Funktion als Funktion der obersten Ebene in einer allgemeinen Klasse wie Utils.kt Ihres Projekts:
Und dann verwenden Sie es überall in Ihrem
Fragment
oderActivity
wie folgt:So einfach ist das!
quelle
sollte innerhalb
<manifest>
und außerhalb des<application>
Tags hinzugefügt werden .quelle
Ich benutze die folgende Utils-Methode:
Fügen Sie der AndroidManifest-Datei die folgende Berechtigung hinzu
Sie können überladene Methoden verwenden, wenn Sie verschiedene Arten von Vibrationen (Muster / unbestimmt) verwenden möchten, wie oben vorgeschlagen.
quelle
Die obige Antwort ist sehr richtig, aber ich gebe einen einfachen Schritt, um dies zu tun:
Und dann in Ihrer XML-Datei:
Das ist der einfachste Weg.
quelle
Vibrieren in Mustern / Wellen :
Plus
Die notwendige Erlaubnis in
AndroidManifest.xml
:quelle
Kotlin-Update für mehr Typensicherheit
Verwenden Sie es als Funktion der obersten Ebene in einer allgemeinen Klasse Ihres Projekts, z. B. Utils.kt
Rufen Sie es dann an einer beliebigen Stelle in Ihrem Code wie folgt auf:
Erläuterung
Die Verwendung
Vibrator::class.java
ist typsicherer als die Verwendung vonString
Konstanten.Wir überprüfen die
vibrator
Nullbarkeit mitlet { }
, denn wenn die Vibration für das Gerät nicht verfügbar ist,vibrator
wird dies der Fall seinnull
.Es ist in Ordnung, die Ablehnung zu unterdrücken
else
Klausel , da die Warnung vom neueren SDK stammt.Wir müssen zur Laufzeit nicht um Erlaubnis bitten, um Vibrationen verwenden zu können. Aber wir müssen es
AndroidManifest.xml
wie folgt deklarieren :quelle
Benutze das:
Hinweis:
Vergessen Sie nicht, die Berechtigung in die Datei AndroidManifest.xml aufzunehmen:
quelle
Sie können das Gerät und seine Arbeit vibrieren lassen
Die Berechtigung ist erforderlich, jedoch nicht zur Laufzeit
quelle