I have a device of which I don\'t know if it has a vibrator.
Is there a way to query for the availability of the vibrator?
Maybe it'll help someone. Since I'm building a PWA, I ended up checking the screen size:
if (window.innerWidth < 600) {
window.navigator.vibrate(300);
}
This may help for API<11:
Context.getSystemService()
returns a service object or null
if no service.
if ( getSystemService(VIBRATOR_SERVICE) != null ) {
//Vibrator exists
}
The Vibrator class does just that. It's hasVibrator() method returns a boolean indicating if vibrating is supported.
hasVibrator()
method.String vs = Context.VIBRATOR_SERVICE;
Vibrator mVibrator = (Vibrator)getSystemService(vs);
boolean isVibrator = mVibrator.hasVibrator();
You need to support (at least) Android 3.0 (11 HoneyComb) before you can use hasVibrator().
Oddly, you can use vibrate() itself on any/all versions.
So the REAL question is: How do v1 - v10 detect if the device has vibrator? (Or will nothing bad happen if you try to vibrate a device without a vibrator?)