【问题标题】:Android: Set power of vibrationAndroid:设置振动的力量
【发布时间】:2012-07-14 10:53:31
【问题描述】:

我目前正在开展一个项目,我想在其中使用位于 Android 手机内部的振动电机。

我想通了,在清单中设置正确的权限并获取振动器的实例:

Vibrator v = (Vibrator) game.getSystemService(Context.VIBRATOR_SERVICE);

会让我访问它。据我所知,使其振动的唯一方法是:

公共抽象虚空振动(长毫秒)

public abstract void vibrate (long[] pattern, int repeat)

但我想控制振动的力量:

如何控制震动的力度?

更新:

不应该通过改变电压(或 PWM 直流)来控制速度吗?

【问题讨论】:

标签: android


【解决方案1】:

根据以下内容,我认为控制强度是不可能的。你能做的是使用短脉冲,这样设备就不会振动得那么快?但我没有亲自测试过。

http://developer.android.com/reference/android/os/Vibrator.htmlcontrolling vibration intensity in android phones? is it possible?

【讨论】:

    【解决方案2】:

    确实,API 没有提供直接控制振动强度的方法。但正如您在更新中建议的那样,PWM 可用于产生各种脉冲宽度的振动模式,从而降低振动电机的平均电压(从而降低振动输出)。

    我发布了一个简单的概念验证方法here。此方法将根据指定的强度生成模式。该方法的转换不是很线性,所以我发布了一个赏金,希望能得到一些替代建议。当我有更好的算法时会更新。

    【讨论】:

    • 酷!谢谢你的分享! ;)
    【解决方案3】:

    Vibrator Class 不允许这样做,您只能设置模式以及持续时间:

    vibrate(long[] pattern, int repeat)
    
    vibrate(long milliseconds)
    

    强度与硬件“Vibration Motor”有关

    【讨论】:

      猜你喜欢
      • 2011-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      相关资源
      最近更新 更多