Produsen perangkat umumnya dianggap sebagai pemilik aset pribadi yang dibuat untuk setiap perangkat. Dengan demikian, upaya engineering mereka sering kali berfokus pada per-perangkat; sedikit atau tidak ada upaya yang dilakukan untuk konsistensi perangkat lain dalam ekosistem.
Sebaliknya, developer berupaya membuat aplikasi yang berfungsi di semua ponsel Android dalam ekosistem, terlepas dari spesifikasi teknis setiap perangkat. Perbedaan pendekatan ini dapat menyebabkan masalah fragmentasi, misalnya, kemampuan hardware ponsel tertentu tidak sesuai dengan ekspektasi yang ditetapkan oleh developer aplikasi. Jadi, jika API haptik berfungsi di beberapa ponsel Android, tetapi tidak di ponsel lainnya, hasilnya adalah ekosistem yang tidak konsisten. Itulah sebabnya konfigurasi hardware berperan penting dalam memastikan bahwa produsen dapat menerapkan API haptik Android di setiap perangkat.
Halaman ini menyediakan checklist langkah demi langkah untuk menyiapkan kepatuhan hardware untuk penggunaan terbaik API haptik Android.
Gambar berikut mengilustrasikan pembuatan pengetahuan umum antara produsen dan developer perangkat, yang merupakan langkah penting dalam menciptakan ekosistem yang kohesif:
Gambar 1. Membangun pengetahuan antara produsen dan developer perangkat
Checklist penerapan haptic
-
- Daftar konstanta untuk menerapkan haptik.
-
- Panduan penerapan untuk primitif komposisi HAL.
Memetakan konstanta antara HAL dan API
- Merekomendasikan pemetaan antara konstanta API publik (bernama placeholder dalam framework) dan konstanta HAL, yang mengimplementasikan placeholder.
- Lihat Prinsip desain untuk memandu pemetaan yang direkomendasikan untuk mempelajari proses ini lebih lanjut.
-
- Petunjuk tentang target efek haptik. Gunakan petunjuk ini untuk melakukan pemeriksaan cepat pada hardware Anda.
Kita akan mempelajari setiap langkah ini secara lebih mendetail di bawah.
Langkah 1: Terapkan konstanta
Lakukan pemeriksaan ini untuk menentukan apakah perangkat Anda memenuhi persyaratan minimum untuk menerapkan haptic:
Gambar 2. Menerapkan efek
Gambar 3. Mengimplementasikan primitif
Periksa status penerapan konstanta haptic berikut.
Konstanta haptik | Lokasi dan ringkasan |
---|---|
EFFECT_TICK , EFFECT_CLICK ,
EFFECT_HEAVY_CLICK ,
EFFECT_DOUBLE_CLICK |
Konstanta haptik class
VibrationEffect di VibrationEffect tidak menyertakan
konsep peristiwa input apa pun, dan tidak memiliki elemen UI. Konstanta menyertakan
konsep tingkat energi, seperti EFFECT_CLICK dan
EFFECT_HEAVY_CLICK , yang dipanggil oleh
createPredefined() . |
Getaran alternatif yang dijelaskan di bawah dilakukan pada perangkat yang tidak
menerapkan konstanta VibrationEffect
. Sebaiknya perbarui konfigurasi ini agar
berperforma terbaik di perangkat tersebut.
EFFECT_CLICK
Getaran bentuk gelombang yang dibuat dengan
VibrationEffect.createWaveform
dan pengaturan waktu yang dikonfigurasi diframeworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern
.EFFECT_HEAVY_CLICK
Getaran bentuk gelombang yang dibuat dengan
VibrationEffect.createWaveform
dan pengaturan waktu yang dikonfigurasi diframeworks/base/core/res/res/values/config.xml##config_longPressVibePattern
.EFFECT_DOUBLE_CLICK
Getaran bentuk gelombang yang dibuat dengan
VibrationEffect.createWaveform
dan pengaturan waktu (0, 30, 100, 30).EFFECT_TICK
Getaran bentuk gelombang yang dibuat dengan
VibrationEffect.createWaveform
dan pengaturan waktu yang dikonfigurasi diframeworks/base/core/res/res/values/config.xml##config_clockTickVibePattern
.
Gambar 4. Menerapkan konstanta masukan
Periksa status konstanta masukan publik berikut.
Konstanta haptik | Lokasi dan ringkasan |
---|---|
CLOCK_TICK , CONTEXT_CLICK , KEYBOARD_PRESS ,
KEYBOARD_RELEASE , KEYBOARD_TAP , LONG_PRESS ,
TEXT_HANDLE_MOVE , VIRTUAL_KEY ,
VIRTUAL_KEY_RELEASE , CONFIRM , REJECT ,
GESTURE_START , GESTURE_END |
Class HapticFeedbackConstants Konstanta haptic di HapticFeedbackConstants membantu peristiwa input
dengan elemen UI tertentu, seperti KEYBOARD_PRESS dan
KEYBOARD_RELEASE , yang dipanggil oleh
performHapticFeedback() . |
Langkah 2: Terapkan primitif
Primitif haptic di
VibrationEffect.Composition
memiliki intensitas yang skalabel yang dapat digunakan developer melalui
addPrimitive(int primitiveId, float scale, int delay)
.
Primitif dapat dibagi menjadi dua kategori:
Primitif singkat: Primitif dengan durasi singkat, biasanya kurang dari 20 milidetik. Ini adalah
CLICK
,TICK
, danLOW_TICK
.Primitif chirp: Primitif dengan amplitudo dan frekuensi yang bervariasi, biasanya dengan durasi yang lebih lama daripada primitif singkat. Parameter tersebut adalah
SLOW_RISE
,QUICK_RISE
,QUCK_FALL
,THUD
, danSPIN
.
Primitif singkat
Primitif singkat dapat dijelaskan oleh profil akselerasi output motor vibrator. Frekuensi absolut yang digunakan bervariasi untuk setiap primitif, bergantung pada frekuensi resonansi aktuator. Lihat Menyiapkan peralatan pengujian untuk mengetahui informasi selengkapnya tentang penyiapan hardware dan alat untuk mengukur output.
Metrik kualitas yang berharga untuk getaran singkat adalah rasio pulsa ke dering (PRR), yang ditunjukkan pada Gambar 5. PRR didefinisikan sebagai rasio antara pulsa utama, yang ditentukan oleh sinyal di dalam periode durasi saat amplitudo menurun menjadi 10% amplitudo puncak, dan pulsa cincin, yang ditentukan oleh sinyal saat amplitudo menurun dari 10% amplitudo puncak menjadi kurang dari 1% amplitudo puncak. Untuk informasi selengkapnya tentang PRR, lihat Menganalisis bentuk gelombang dan untuk informasi selengkapnya tentang cara menganalisis dan membandingkan hasil, lihat Membandingkan hasil menggunakan peta performa.
Gambar 5. Definisi rasio denyut nadi ke dering
Terapkan primitif singkat sebagai masukan input pengguna atau diputar dalam komposisi yang lebih panjang untuk membuat tekstur yang lembut. Artinya, kode ini biasanya sering dipicu dan diputar secara berurutan dengan cepat. Intensitas yang dirasakan dari satu primitif pendek dapat memperburuk intensitas efek yang lebih besar. Oleh karena itu, kalibrasi satu tick atau primitif tick rendah dengan komposisi yang lebih besar, misalnya, 100 tick berturut-turut.
Primitif klik
Primitif klik adalah efek yang kuat dan jernih yang biasanya beroperasi dekat dengan frekuensi resonansi perangkat untuk mencapai output maksimum dalam durasi singkat. Ini lebih kuat dan lebih dalam daripada primitif lainnya, yang berperforma pada intensitas maksimum.
Jika tersedia, gunakan overdrive motor di awal dan pengereman aktif di akhir untuk mencapai waktu naik dan turun motor yang singkat. Untuk beberapa motor, menggunakan gelombang persegi, bukan gelombang sinus, dapat menghasilkan akselerasi yang lebih cepat. Gambar 6 menunjukkan contoh profil akselerasi output untuk primitif klik:
Gambar 6. Contoh profil akselerasi output untuk primitif klik
Parameter | Guideline |
---|---|
Durasi |
Target: 12 md Batas: < 30 md |
Akselerasi output puncak |
Target: 2 G Batas: > 1 G |
Frekuensi | Kira-kira pada frekuensi resonansi |
Primitif centang (centang terang)
Primitif tanda centang adalah efek singkat dan tajam yang biasanya beroperasi pada rentang frekuensi yang lebih tinggi. Primitif ini juga dapat digambarkan sebagai klik intensitas sedang dengan frekuensi yang lebih tinggi dan memiliki ekor pendek. Panduan yang sama berlaku untuk mencapai waktu naik yang singkat menggunakan overdrive motor atau gelombang persegi untuk awal awal, dan pengereman aktif pada offset. Gambar 7 menunjukkan contoh profil akselerasi output untuk primitif tanda centang:
Gambar 7. Contoh profil akselerasi output untuk primitif tanda centang
Parameter | Guideline |
---|---|
Durasi |
Target: 5 md Batas: < 20 ms |
Akselerasi output puncak |
Target: Setengah dari Batas: Antara 0,5 G dan 1 G |
Frekuensi |
Target: 2x frekuensi resonansi Batas: < 500 Hz |
Primitif tanda centang rendah
Primitif tanda centang rendah adalah versi tanda centang terang yang lebih lembut dan lebih lemah, yang beroperasi pada rentang frekuensi yang lebih rendah untuk memberikan lebih banyak isi pada efek. Primitif ini juga dapat dijelaskan sebagai klik intensitas sedang pada frekuensi yang lebih rendah, yang dimaksudkan untuk digunakan berulang kali untuk mendapatkan masukan dinamis. Panduan yang sama berlaku untuk mencapai waktu naik yang singkat menggunakan overdrive motor atau gelombang persegi untuk awal awal. Gambar 8 menunjukkan contoh profil akselerasi output untuk primitif tick rendah:
Gambar 8. Contoh profil akselerasi output untuk primitif tick rendah
Parameter | Guideline |
---|---|
Durasi |
Target: 12 md Batas: < 30 md |
Akselerasi output puncak |
Target: 1/4 Batas: Antara 0,2 G dan 0,5 G |
Frekuensi |
Target: 2/3 frekuensi resonansi Batas: < 100 Hz |
Primitif chirp
Primitif chirp dapat dijelaskan oleh sinyal input untuk level voltase dan frekuensi getaran. Akselerasi yang dapat dihasilkan motor pada rentang frekuensi yang berbeda bervariasi bergantung pada kurva respons frekuensi aktuator. Rentang frekuensi dan level voltase perlu disesuaikan berdasarkan perangkat.
Primitif kenaikan lambat
Kenaikan lambat adalah amplitudo lambat dan frekuensi yang di-sweep ke atas dengan awal yang lembut dan intensitas getaran yang meningkat secara konsisten di seluruh sweep. Hal ini dapat diimplementasikan dengan sapuan amplitudo dan frekuensi yang konsisten, menggunakan rentang frekuensi yang lebih rendah yang beroperasi di luar resonansi. Gambar 9 menunjukkan parameter input dan contoh profil akselerasi output untuk implementasi ini. (Garis merah cocok dengan label amplitudo di sebelah kiri dan menunjukkan bagaimana amplitudo getaran bervariasi seiring waktu. Garis biru cocok dengan label frekuensi di sebelah kanan dan menunjukkan bagaimana frekuensi getaran bervariasi seiring waktu.)
Gambar 9. Parameter input dan contoh profil akselerasi output untuk primitif kenaikan lambat
Jika respons frekuensi motor terbatas (tidak cukup kuat dari frekuensi resonansinya), implementasi alternatifnya adalah sapuan sine dari 1/2x hingga 1x frekuensi resonansi. Resonansi motor berkontribusi untuk mencapai puncak sinyal di akhir.
Parameter | Guideline |
---|---|
Durasi |
Target: 500 md Toleransi: 20 md |
Akselerasi output puncak |
Target: 0,5 G Batas: Antara 0,5 G dan 1 G |
Frekuensi |
Target: 1/2 hingga 2/3 frekuensi resonansi Alternatif: 1/2 hingga frekuensi resonansi |
Primitif kenaikan cepat
Peningkatan cepat adalah amplitudo dan frekuensi yang lebih cepat menyapu ke atas dengan awal yang lembut dan secara konsisten meningkatkan intensitas getaran di seluruh sapuan. Target frekuensi getaran dan akselerasi output harus sama dengan primitif naik lambat, yang dicapai dalam durasi yang lebih singkat. Gambar 10 menunjukkan parameter input getaran dan contoh profil akselerasi output untuk primitif naik lambat. (Garis merah cocok dengan label amplitudo di sebelah kiri dan menunjukkan bagaimana amplitudo getaran bervariasi seiring waktu. Garis biru cocok dengan label frekuensi di sebelah kanan dan menunjukkan bagaimana frekuensi getaran bervariasi seiring waktu.)
Gambar 10. Parameter input dan contoh profil akselerasi output untuk primitif kenaikan cepat
Parameter | Guideline |
---|---|
Durasi |
Target: 150 md Toleransi: 20 md |
Akselerasi output puncak |
Target: Sama seperti Batas: Sama dengan |
Frekuensi |
Target: Sama seperti Alternatif: Sama seperti |
Primitif penurunan cepat
Penurunan cepat adalah amplitudo cepat dan sapuan frekuensi ke bawah dengan awal lembut. Anda dapat menggunakan frekuensi yang lebih tinggi sebagai titik awal saat motor dipercepat untuk mencapai akselerasi output puncak. Frekuensi harus secara konsisten menurun di seluruh sapuan, bahkan selama waktu naik. Gambar 11 menunjukkan parameter input dan contoh profil akselerasi output untuk implementasi ini. (Garis merah cocok dengan label amplitudo di sebelah kiri dan menunjukkan bagaimana amplitudo getaran bervariasi seiring waktu. Garis biru cocok dengan label frekuensi di sebelah kanan dan menunjukkan bagaimana frekuensi getaran bervariasi seiring waktu.)
Gambar 11. Parameter input dan contoh profil akselerasi output untuk primitif penurunan cepat
Parameter | Guideline |
---|---|
Durasi |
Target: 100 md Toleransi: 20 md |
Akselerasi output puncak |
Target: 1 G Batas: Antara 0,5 G dan 2 G |
Frekuensi |
Target: 2x hingga 1x frekuensi resonansi |
Primitif Thud
Suara gemuruh adalah efek perkusi yang berat, rendah, dan bergetar yang menyimulasikan sensasi fisik mengetuk kayu berlubang. Primitif ini beroperasi dalam rentang frekuensi rendah, mirip dengan primitif tick rendah, untuk memberikan lebih banyak isi pada efek. Anda dapat menerapkan primitif thud sebagai amplitudo dan frekuensi sweep menurun pada rentang frekuensi yang lebih rendah (sebaiknya kurang dari 100 Hz). Gambar 12 menunjukkan parameter input dan contoh profil akselerasi output untuk implementasi ini. (Garis merah cocok dengan label amplitudo di sebelah kiri dan menunjukkan bagaimana amplitudo getaran bervariasi seiring waktu. Garis biru cocok dengan label frekuensi di sebelah kanan dan menunjukkan bagaimana frekuensi getaran bervariasi seiring waktu.)
Gambar 12. Parameter input dan contoh profil akselerasi output untuk primitif thud
Jika respons frekuensi motor terbatas, implementasi alternatifnya adalah memulai dengan sinyal drive intensitas penuh pada frekuensi resonansi dan turun ke frekuensi serendah mungkin yang masih dapat dirasakan. Pendekatan ini mungkin memerlukan peningkatan intensitas sinyal drive pada frekuensi yang lebih rendah agar getaran dapat dirasakan.
Parameter | Guideline |
---|---|
Durasi |
Target: 300 md Toleransi: 20 md |
Akselerasi output puncak |
Target: 0,25 G Batas: Antara 0,2 G dan 0,5 G |
Frekuensi |
Target: 1/2 hingga 1/3 frekuensi resonansi Alternatif: 1x hingga 1/2 frekuensi resonansi |
Primitif putar
Putaran menyimulasikan momentum putaran dari putaran cepat ke atas dan ke bawah dengan sedikit aksen di bagian tengah. Putaran dapat diterapkan dengan menyapu amplitudo dan frekuensi secara independen, dalam arah yang berlawanan dan diikuti dengan gerakan terbalik. Penting untuk menggunakan rentang frekuensi yang lebih rendah (sebaiknya kurang dari 100 Hz). Gambar 13 menunjukkan parameter input dan contoh profil akselerasi output untuk implementasi ini. (Garis merah cocok dengan label amplitudo di sebelah kiri dan menunjukkan bagaimana amplitudo getaran bervariasi seiring waktu. Garis biru cocok dengan label frekuensi di sebelah kanan dan menunjukkan bagaimana frekuensi getaran bervariasi seiring waktu.)
Sebaiknya primitif putaran dipanggil dua kali berturut-turut, atau tiga kali dalam komposisi, untuk mencapai sensasi berputar dan tidak stabil.
Jika respons frekuensi motor terbatas, implementasi alternatifnya adalah melakukan sapuan sinus cepat dari 1/2x hingga 1x frekuensi resonan dan kembali. Resonansi motor secara otomatis memberikan aksen di tengah sinyal.
Gambar 13. Parameter input dan contoh profil akselerasi output untuk primitif putaran
Parameter | Guideline |
---|---|
Durasi |
Target: 150 md Toleransi: 20 md |
Akselerasi output puncak |
Target: 0,5 G Batas: Antara 0,25 G dan 0,75 G |
Frekuensi |
Target: 2/3 hingga 1/3, lalu kembali ke 1/2 frekuensi resonansi Alternatif: 2/3 hingga 1x, lalu kembali ke 1/2 frekuensi resonansi |
Langkah 3: Petakan konstanta antara HAL dan API
Langkah 3 menyajikan pemetaan yang direkomendasikan antara konstanta HAL publik dan konstanta API. Jika hardware yang dinilai di Langkah 1 tidak menerapkan konstanta HAL, gunakan Langkah 3 untuk memperbarui pola penggantian yang dijelaskan di Langkah 1 untuk menghasilkan output yang serupa. Pemetaan dibantu oleh dua model default yang berbeda:
Model diskret (sederhana)
- Amplitudo adalah variabel utama model ini. Setiap entity di HAL mewakili amplitudo haptic yang berbeda.
- Model ini adalah persyaratan minimum yang diperlukan untuk menerapkan UX haptik dasar.
- UX haptik yang lebih canggih memerlukan hardware canggih dan model lanjutan (model berkelanjutan).
Model berkelanjutan (tingkat lanjut)
- Tekstur dan amplitudo adalah variabel utama model ini. Setiap entity
di HAL mewakili tekstur haptik yang berbeda. Amplitudo setiap
entitas HAL dikontrol oleh faktor skala (
S
). - Model ini memerlukan hardware lanjutan. Jika OEM ingin menggunakan UX haptik
lanjutan dengan
VibrationEffect.Composition
(untuk penggunaan API haptik terbaru yang terbaik), sebaiknya terapkan hardware mereka menggunakan model ini.
- Tekstur dan amplitudo adalah variabel utama model ini. Setiap entity
di HAL mewakili tekstur haptik yang berbeda. Amplitudo setiap
entitas HAL dikontrol oleh faktor skala (
Model diskret
Sebaiknya pemetaan semua konstanta publik yang disediakan di API dengan konstanta HAL yang sesuai. Untuk memulai proses ini, cari tahu jumlah bentuk gelombang haptik dengan amplitudo diskret yang dapat ditentukan perangkat di HAL. Pertanyaan spesifik yang disusun berdasarkan gagasan tersebut terlihat seperti ini: Berapa banyak efek haptik impuls tunggal dengan perbedaan amplitudo yang dapat dirasakan manusia yang dapat ditentukan di ponsel saya? Jawaban atas pertanyaan ini akan menentukan pemetaan.
Menentukan konstanta HAL adalah proses yang bergantung pada hardware. Misalnya, ponsel kelas pemula mungkin hanya memiliki kemampuan hardware untuk menghasilkan satu bentuk gelombang haptik. Perangkat dengan komponen hardware yang lebih canggih menghasilkan rentang level amplitudo diskret yang lebih luas, dan dapat menentukan beberapa bentuk gelombang haptik di HAL. Pemetaan konstanta HAL-API menggunakan konstanta HAL (menggunakan amplitudo sedang sebagai dasar pengukuran), lalu mengatur efek yang lebih kuat atau lebih lemah dari sana.
Gambar 14. Rentang konstan HAL menurut amplitudo
Saat jumlah konstanta HAL dengan amplitudo diskret ditentukan, saatnya memetakan konstanta HAL dan API berdasarkan jumlah konstanta HAL. Proses pemetaan ini dapat menyegmentasikan satu konstanta API impuls menjadi hingga tiga grup tingkat amplitudo terpisah. Cara konstanta API disegmentasikan didasarkan pada prinsip UX untuk menyertai peristiwa input. Untuk informasi selengkapnya, lihat Desain UX Haptik.
Gambar 15. Pemetaan konstanta HAL-API: Model diskret
Jika perangkat Anda hanya mendukung dua konstanta HAL dengan amplitudo diskret,
pertimbangkan untuk menggabungkan konstanta HAL level amplitudo Sedang dan Tinggi. Contoh
konsep ini dalam praktiknya adalah memetakan EFFECT_CLICK
dan EFFECT_HEAVY_CLICK
ke konstanta HAL yang sama, yang akan menjadi konstanta HAL
tingkat amplitudo Sedang. Jika perangkat Anda hanya mendukung satu konstanta HAL dengan amplitudo
diskret, pertimbangkan untuk menggabungkan ketiga level menjadi satu.
Model berkelanjutan
Model berkelanjutan dengan skalabilitas amplitudo dapat diterapkan untuk menentukan konstanta
HAL. Faktor skala (S
) dapat diterapkan ke konstanta HAL (misalnya, HAL_H0
, HAL_H1
) untuk menghasilkan HAL yang diskalakan (HAL_H0
x S
). Dalam
hal ini, HAL yang diskalakan dipetakan untuk menentukan konstanta API (HAL_H0
x S1
= H0S1
= EFFECT_TICK
) seperti yang ditunjukkan pada gambar 16. Dengan menggunakan skalabilitas amplitudo
model kontinu, perangkat dapat menyimpan sejumlah kecil konstanta HAL dengan
tekstur yang berbeda dan menambahkan variasi amplitudo dengan menyesuaikan faktor skala
(S
). Produsen perangkat dapat menentukan jumlah konstanta HAL berdasarkan
berapa banyak tekstur haptic yang berbeda yang ingin mereka berikan.
Gambar 16. Rentang konstanta HAL menurut tekstur (HAL_H0) dan skala amplitudo (S)
Gambar 17. Pemetaan konstanta HAL-API: Model berkelanjutan
Dalam model berkelanjutan, konstanta HAL yang berbeda mewakili tekstur haptik yang berbeda, bukan amplitudo yang berbeda; faktor skala (S
) dapat mengonfigurasi amplitudo. Namun, karena persepsi tekstur (misalnya, ketajaman) terkait dengan persepsi durasi dan amplitudo, menggabungkan tekstur dan faktor skala (dalam proses desain pemetaan HAL-API) direkomendasikan.
Gambar 18 mengilustrasikan pemetaan konstan dengan meningkatkan variasi dari satu HAL ke banyak konstanta API dengan skalabilitas amplitudo.
Gambar 18. Meningkatkan variasi dengan skalabilitas amplitudo
Untuk semua konstanta API yang skalabel seperti PRIMITIVE_TICK
dan PRIMITIVE_CLICK
di
VibrationEffect.Composition
,
tingkat energi konstanta API bergantung pada parameter float scale
saat
konstanta API dideklarasikan melalui addPrimitive(int primitiveID, float scale,
int delay)
. PRIMITIVE_TICK
dan PRIMITIVE_CLICK
dapat dirancang dengan perbedaan
yang jelas menggunakan konstanta HAL yang berbeda. Pendekatan ini direkomendasikan jika
Anda ingin menambahkan variasi pada tekstur.
Langkah 4: Menilai hardware
Penilaian hardware melibatkan penentuan tiga efek haptic, yang diberi label Efek 1, 2, dan 3 untuk penilaian khusus ini.
Efek 1: Konstanta haptik pendek yang telah ditentukan sebelumnya
Konstanta
VibrationEffect.EFFECT_CLICK
adalah efek dasar pengukuran atau penyebut umum dalam pemetaan HAL-API
yang disediakan di Langkah 2. Ini dipetakan dengan efek yang paling sering digunakan,
HapticFeedbackConstants.KEYBOARD_PRESS
.
Menilai efek ini membantu menentukan kesiapan perangkat target Anda untuk
haptik
yang jelas.
Efek 2: Efek haptic kustom singkat
Konstanta
VibrationEffect.createOneShot(20,255)
adalah untuk efek haptic kustom. Untuk impuls kustom tunggal yang singkat,
20 milidetik adalah nilai minimum maksimum yang direkomendasikan untuk menentukan durasi. Satu
impuls yang berdurasi lebih dari 20 milidetik tidak direkomendasikan karena dirasakan sebagai
getaran
berdengung.
Gambar 19. Efek haptic kustom singkat
Efek 3: Efek haptic kustom panjang dengan variasi amplitudo
Konstanta VibrationEffect.createWaveform(timings[], amplitudes[], int
repeat)
adalah untuk efek kustom panjang dengan variasi amplitudo. Kemampuan untuk
menghasilkan amplitudo yang bervariasi untuk efek haptic kustom adalah salah satu indikator untuk
mengevaluasi kemampuan perangkat untuk haptik
kaya. timings []
dan amplitudes []
yang direkomendasikan adalah {500, 500}
dan {128, 255}
,
yang masing-masing menunjukkan tren peningkatan amplitudo dari 50% hingga 100%,
dengan frekuensi sampling 500 milidetik.
Gambar 20. Efek haptic kustom panjang dengan variasi amplitudo
Untuk memeriksa kemampuan hardware kontrol amplitudo untuk Efek 3, gunakan
metode
Vibrator.hasAmplitudeControl()
. Hasilnya harus true
untuk mengeksekusi
VibrationEffect.createWaveform
dengan amplitudo yang bervariasi seperti yang diinginkan.
Gambar 21. Penilaian subjek terhadap efek haptic 1, 2, dan 3
Melakukan penilaian subjektif
Untuk pemeriksaan koherensi cepat, lakukan penilaian subjektif terlebih dahulu. Tujuan penilaian subjektif adalah untuk mengamati amplitudo efek haptik guna menentukan apakah perangkat dapat menghasilkan haptik dengan amplitudo yang dapat dirasakan manusia.
Pertanyaan spesifik yang disusun berdasarkan gagasan ini terlihat seperti ini: Dapatkah perangkat menghasilkan efek haptik yang dapat dirasakan oleh pengguna seperti yang diharapkan? Menjawab pertanyaan ini membantu Anda menghindari haptik yang gagal, termasuk haptik yang tidak terlihat yang tidak dapat dirasakan pengguna, atau haptik yang tidak diinginkan saat bentuk gelombang tidak menghasilkan pola seperti yang diinginkan.
Melakukan penilaian lanjutan
Sebaiknya lakukan penilaian kualitas lanjutan. Penilaian kualitas lanjutan mencirikan atribut efek haptik yang dapat diukur untuk menerapkan haptik berkualitas. Setelah selesai, produsen perangkat harus dapat mendiagnosis status haptic saat ini, yang berarti mereka dapat menetapkan sasaran untuk meningkatkan kualitas secara keseluruhan. Lihat Penilaian hardware.