Saya menulis aplikasi Android. Sekarang, saya ingin membuat perangkat bergetar ketika tindakan tertentu terjadi. Bagaimana saya bisa melakukan ini?
java
android
vibration
android-vibration
Billie
sumber
sumber
vibrate(VibrationEffect)
saja.Berikan Izin Getaran
Sebelum Anda mulai menerapkan kode getaran apa pun, Anda harus memberi izin pada aplikasi Anda untuk bergetar:
Pastikan untuk memasukkan baris ini dalam file AndroidManifest.xml Anda.
Impor Perpustakaan Getaran
Sebagian besar IDE akan melakukan ini untuk Anda, tetapi ini adalah pernyataan impor jika Anda tidak:
Pastikan ini dalam aktivitas di mana Anda ingin getaran terjadi.
Cara Bergetar untuk Waktu yang Diberikan
Dalam sebagian besar keadaan, Anda ingin menggetarkan perangkat untuk waktu yang singkat dan telah ditentukan sebelumnya. Anda dapat mencapai ini dengan menggunakan
vibrate(long milliseconds)
metode ini. Ini adalah contoh cepat:Itu dia, sederhana!
Cara Bergetar tanpa batas
Mungkin Anda ingin perangkat terus bergetar tanpa batas. Untuk ini, kami menggunakan
vibrate(long[] pattern, int repeat)
metode:Saat Anda siap untuk menghentikan getaran, panggil saja
cancel()
metode ini:Cara menggunakan Pola Getaran
Jika Anda menginginkan getaran yang lebih khusus, Anda dapat mencoba membuat pola getaran sendiri:
Getaran Lebih Kompleks
Ada beberapa SDK yang menawarkan rentang umpan balik haptic yang lebih komprehensif. Salah satu yang saya gunakan untuk efek khusus adalah Platform Haptic Development Immersion untuk Android .
Penyelesaian masalah
Jika perangkat Anda tidak bergetar, pertama-tama pastikan itu dapat bergetar:
Kedua, harap pastikan bahwa Anda memberi izin pada aplikasi Anda untuk bergetar! Rujuk kembali ke poin pertama.
sumber
Metode pembaruan 2017 vibrate (interval) sudah tidak digunakan lagi dengan Android-O (API 8.0)
Untuk mendukung semua versi Android gunakan metode ini.
Kotlin:
sumber
getSystemService
denganthis.getContext().getSystemService
Jawaban di atas sempurna. Namun saya ingin menggetarkan aplikasi saya persis dua kali pada klik tombol dan informasi kecil ini tidak ada di sini, karenanya memposting untuk pembaca masa depan seperti saya. :)
Kita harus mengikuti seperti yang disebutkan di atas dan satu-satunya perubahan akan berada dalam pola bergetar seperti di bawah ini,
Ini akan bergetar dua kali . Seperti yang sudah kita ketahui
Seseorang dapat terus-menerus menyebutkan penundaan dan getaran sebagai alternatif (mis. 0, 100, 1000, 300, 1000, 300 untuk 3 getaran dan seterusnya ..) tetapi ingatlah kata @ Dave yang menggunakannya secara bertanggung jawab. :)
Perhatikan juga di sini bahwa parameter pengulangan diatur ke -1 yang berarti getaran akan terjadi persis seperti yang disebutkan dalam pola . :)
sumber
Saya kesulitan memahami bagaimana melakukan ini pada implementasi pertama saya - pastikan Anda memiliki yang berikut:
1) Perangkat Anda mendukung getaran (tablet Samsung saya tidak berfungsi sehingga saya terus memeriksa ulang kodenya - kode asli berfungsi dengan baik pada CM Touchpad saya
2) Anda telah mendeklarasikan di atas level aplikasi dalam file AndroidManifest.xml Anda untuk memberikan izin kode untuk dijalankan.
3) Telah mengimpor kedua hal berikut ke MainActivity.java Anda dengan impor lainnya: impor android.content.Context; impor android.os.Vibrator;
4) Panggil getaran Anda (sudah dibahas secara luas di utas ini sudah) - Saya melakukannya di fungsi terpisah dan menyebutnya dalam kode di titik lain - tergantung pada apa yang ingin Anda gunakan untuk memanggil getaran Anda mungkin memerlukan gambar ( Android: klik panjang pada tombol -> lakukan tindakan ) atau pendengar tombol, atau objek yang dapat diklik seperti yang didefinisikan dalam XML ( gambar yang dapat diklik - android ):
sumber
Bergetar tanpa menggunakan izin
Jika Anda ingin hanya bergetar perangkat sekali untuk memberikan umpan balik pada tindakan pengguna. Anda dapat menggunakan
performHapticFeedback()
fungsi aView
. Ini tidak perluVIBRATE
izin untuk dinyatakan dalam manifes.Gunakan fungsi berikut sebagai fungsi tingkat atas di beberapa kelas umum seperti Utils.kt dari proyek Anda:
Dan kemudian gunakan di mana saja di Anda
Fragment
atauActivity
sebagai berikut:Sederhana seperti itu!
sumber
harus ditambahkan
<manifest>
tag di dalam dan di luar<application>
tag.sumber
Saya menggunakan metode utils berikut:
Tambahkan izin berikut ke file AndroidManifest
Anda dapat menggunakan metode kelebihan beban jika Anda ingin menggunakan berbagai jenis getaran (pola / tidak terbatas) seperti yang disarankan di atas.
sumber
Jawaban di atas sangat benar tetapi saya memberikan langkah mudah untuk melakukannya:
Dan kemudian di file xml Anda:
Itu cara termudah .
sumber
Pola / Gelombang yang bergetar :
Plus
Izin yang diperlukan di
AndroidManifest.xml
:sumber
Pembaruan Kotlin untuk keamanan tipe yang lebih banyak
Gunakan itu sebagai fungsi tingkat atas di beberapa kelas umum proyek Anda seperti Utils.kt
Dan menyebutnya di mana saja dalam kode Anda sebagai berikut:
Penjelasan
Menggunakan
Vibrator::class.java
lebih aman daripada menggunakanString
konstanta.Kami memeriksa
vibrator
nullability menggunakanlet { }
, karena jika getaran tidak tersedia untuk perangkat, ituvibrator
akan menjadinull
.Tidak masalah untuk menekan penghentian
else
klausa, karena peringatan tersebut dari SDK yang lebih baru.Kami tidak perlu meminta izin saat runtime untuk menggunakan getaran. Tetapi kita perlu mendeklarasikannya
AndroidManifest.xml
sebagai berikut:sumber
Gunakan ini:
catatan:
Jangan lupa untuk menyertakan izin dalam file AndroidManifest.xml:
sumber
Anda dapat Getar Perangkat dan pekerjaannya
Izin diperlukan tetapi tidak pada izin runtime diperlukan
sumber