Android VibrationEffect.createWaveform(timings[], amplitudes[], repeat) —
tablica naprzemiennie: przerwa, wibracja, przerwa, wibracja...
(wszystko w ms). Amplitudy 1–255 lub -1 = domyślna.
Web Vibration API
— działa na Android Chrome. Domyślnie rozpoczyna od wibracji, dlatego pierwszy element to 0.
Wywołanie:
navigator.vibrate([...])
Gotowy fragment kodu Kotlin dla Android API 26+.
iOS nie ma natywnej API dla custom waveformów.
Poniżej podejście z AudioServicesPlaySystemSound + custom haptic engine (CoreHaptics).