Napisałem aplikację na Androida. Teraz chcę sprawić, aby urządzenie wibrowało, gdy nastąpi określone działanie. W jaki sposób mogę to zrobić?
java
android
vibration
android-vibration
Billie
źródło
źródło
vibrate(VibrationEffect)
Zamiast tego należy użyć .Udziel pozwolenia na wibracje
Zanim zaczniesz implementować kod wibracyjny, musisz zezwolić aplikacji na wibrowanie:
Pamiętaj, aby dołączyć ten wiersz do pliku AndroidManifest.xml.
Zaimportuj bibliotekę wibracji
Większość IDE zrobi to za Ciebie, ale oto instrukcja importu, jeśli nie:
Upewnij się, że jest to czynność, w której ma wystąpić wibracja.
Jak wibrować przez określony czas
W większości przypadków będziesz chciał wibrować urządzenie przez krótki, z góry określony czas. Możesz to osiągnąć za pomocą
vibrate(long milliseconds)
metody. Oto szybki przykład:To wszystko, proste!
Jak wibrować w nieskończoność
Może się zdarzyć, że chcesz, aby urządzenie nadal wibrowało bez końca. W tym celu używamy
vibrate(long[] pattern, int repeat)
metody:Kiedy jesteś gotowy, aby zatrzymać wibracje, po prostu wywołaj
cancel()
metodę:Jak używać wzorów wibracji
Jeśli chcesz uzyskać bardziej dostosowane wibracje, możesz spróbować stworzyć własne wzorce wibracji:
Bardziej złożone wibracje
Istnieje wiele zestawów SDK, które oferują bardziej wszechstronny zakres dotykowych informacji zwrotnych. Jednym z nich, którego używam do efektów specjalnych, jest Haptic Development Platform Immersion na Androida .
Rozwiązywanie problemów
Jeśli urządzenie nie wibruje, najpierw upewnij się, że może wibrować:
Po drugie, upewnij się, że dałeś swojej aplikacji pozwolenie na wibrowanie! Wróć do pierwszego punktu.
źródło
Metoda aktualizacji wibracji (interwał) aktualizacji 2017 jest przestarzała w przypadku Androida-O (API 8.0)
Aby obsłużyć wszystkie wersje Androida, użyj tej metody.
Kotlin:
źródło
getSystemService
zthis.getContext().getSystemService
Powyższe odpowiedzi są idealne. Chciałem jednak wibrować moją aplikację dokładnie dwa razy po kliknięciu przycisku i brakuje tutaj tych drobnych informacji, dlatego zamieszczam posty dla przyszłych czytelników takich jak ja. :)
Musimy postępować, jak wspomniano powyżej, a jedyną zmianą będzie wzór wibracji, jak poniżej,
To dokładnie wibruje dwa razy . Jak już wiemy
Można mówić naprzemiennie o opóźnieniu i wibracjach (np. 0, 100, 1000, 300, 1000, 300 dla 3 wibracji itd.), Ale pamiętaj, że słowo @ Dave'a używa go odpowiedzialnie. :)
Zauważ też, że parametr powtarzania jest ustawiony na -1, co oznacza, że wibracje będą występować dokładnie tak , jak wspomniano we wzorze . :)
źródło
Podczas pierwszego wdrożenia miałem problem ze zrozumieniem, jak to zrobić - upewnij się, że masz następujące elementy:
1) Twoje urządzenie obsługuje wibracje (mój tablet Samsung nie działał, więc ciągle sprawdzałem kod - oryginalny kod działał idealnie na moim CM Touchpad
2) W pliku AndroidManifest.xml zadeklarowałeś powyżej poziomu aplikacji, aby dać kodowi pozwolenie na uruchomienie.
3) Zaimportowałem oba poniższe elementy do MainActivity.java wraz z innymi importami: import android.content.Context; import android.os.Vibrator;
4) Wywołaj swoją wibrację (już obszernie omówione w tym wątku) - Zrobiłem to w osobnej funkcji i wywołaj to w kodzie w innych punktach - w zależności od tego, czego chcesz użyć do wywołania wibracji, możesz potrzebować obrazu ( Android: długie kliknięcie przycisku -> wykonywanie akcji ) lub detektora przycisku lub klikalnego obiektu zdefiniowanego w XML (klikalny obraz - Android ):
źródło
Wibracje bez użycia uprawnień
Jeśli chcesz po prostu wibrować urządzenie raz, aby przekazać opinię na temat działania użytkownika. Możesz użyć
performHapticFeedback()
funkcjiView
. Nie wymaga toVIBRATE
zgody na zadeklarowanie w manifeście.Użyj następującej funkcji jako funkcji najwyższego poziomu w niektórych popularnych klasach, takich jak Utils.kt twojego projektu:
A następnie użyj go w dowolnym miejscu
Fragment
lubActivity
w następujący sposób:Proste!
źródło
należy dodać wewnątrz
<manifest>
tagu i<application>
tagu zewnętrznego .źródło
Używam następującej metody utils:
Dodaj następujące uprawnienie do pliku AndroidManifest
Możesz użyć przeciążonych metod w przypadku, gdy chcesz użyć różnych rodzajów wibracji (wzorów / nieokreślonych), jak sugerowano powyżej.
źródło
Powyższa odpowiedź jest bardzo poprawna, ale daję łatwy krok, aby to zrobić:
A następnie w pliku xml:
To najłatwiejszy sposób.
źródło
Wibrowanie we wzorach / falach :
Plus
Niezbędne pozwolenie w
AndroidManifest.xml
:źródło
Aktualizacja Kotlin dla większego bezpieczeństwa typu
Użyj go jako funkcji najwyższego poziomu w niektórych popularnych klasach swojego projektu, takich jak Utils.kt
A następnie wywołaj go w dowolnym miejscu kodu:
Wyjaśnienie
Korzystanie
Vibrator::class.java
jest bardziej bezpieczne dla typu niż używanieString
stałych.Sprawdzamy
vibrator
zerowalność za pomocąlet { }
, ponieważ jeśli wibracja nie jest dostępna dla urządzenia,vibrator
będzienull
.Można ukryć deprecjację w
else
klauzule, ponieważ ostrzeżenie pochodzi z nowszego SDK.W czasie wykonywania nie musimy prosić o zgodę na używanie wibracji. Ale musimy to zadeklarować w
AndroidManifest.xml
następujący sposób:źródło
Użyj tego:
Uwaga:
Nie zapomnij dołączyć uprawnienia do pliku AndroidManifest.xml:
źródło
Możesz wibrować urządzenie i jego działanie
Zezwolenie jest konieczne, ale nie wymaga zezwolenia
źródło