Android:设置振动的力量

时间:2012-07-14 10:53:32

标签: android

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

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

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

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

  

public abstract void vibrate(long milliseconds)

  

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

然而,我想控制振动的力量:

如何控制振动的力量?

更新

速度是否应该通过改变电压(或PWM DC)来控制?

3 个答案:

答案 0 :(得分:4)

如下所示,我认为无法控制强度。您可以做的是使用短脉冲,以便设备不会以如此快的速度振动?但是我没有亲自测试过这个。

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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

vibrate(long[] pattern, int repeat)

vibrate(long milliseconds)

强度与硬件“Vibration Motor

相关