How can I find out if a device has a vibrator?

后端 未结 4 1084
臣服心动
臣服心动 2021-01-03 17:58

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?

相关标签:
4条回答
  • 2021-01-03 18:12

    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);
      }
    
    0 讨论(0)
  • 2021-01-03 18:19

    This may help for API<11:

    Context.getSystemService() returns a service object or null if no service.

    if ( getSystemService(VIBRATOR_SERVICE) != null ) {
        //Vibrator exists
    }
    
    0 讨论(0)
  • 2021-01-03 18:26

    The Vibrator class does just that. It's hasVibrator() method returns a boolean indicating if vibrating is supported.

    1. Get an instance of the Vibrator class which is a system service.
    2. Query the Vibrator class using the hasVibrator() method.
    String vs = Context.VIBRATOR_SERVICE;
    Vibrator mVibrator = (Vibrator)getSystemService(vs);
    
    boolean isVibrator = mVibrator.hasVibrator();
    
    0 讨论(0)
  • 2021-01-03 18:26

    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?)

    0 讨论(0)
提交回复
热议问题