I uploaded a new test build, using the same call as the one used by Emu48.
The relevant API call is:
    long[] vibratePattern = { 0, durationInMilliSecond, 1000 };
    vibrator.vibrate(VibrationEffect.createWaveform(vibratePattern, -1));
I don't understand why the pattern has an odd length, that final 1000 seems redundant. The array of timings is supposed to be alternating durations of the vibrator being off and on, so ending it with an 'off' duration seems like it shouldn't do anything, and the other code examples I could find all have even numbers of entries in the pattern array. But I left it in just in case; if this code works, I'll try if it still works without that final 1000. But for now, one change at a time.