安卓:设置振动强度

5

我目前正在一个项目中工作,希望能够使用安卓手机内置的震动马达。

我已经找到通过设置manifest中的正确权限以及获取震动器的实例方法:

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

我希望能够访问它。就我所知,使其振动的唯一方法是:

public abstract void vibrate (long milliseconds)

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

但我想控制振动的强度:

如何控制振动的强度?

更新:

速度不应该通过变化电压(或PWM DC)来控制吗?


你想要打开或关闭震动控制吗? - Shalini
可能是在Android手机中控制振动强度?这可能吗?的重复问题。 - Oliver Charlesworth
不,我想控制振动的力度。 - Luke Taylor
3个回答

5

3

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

我在这里发布了一个简单的概念验证方法。该方法将根据指定的强度生成模式。该方法中的转换并非完全线性,因此我已经发布了一份赏金,希望得到其他替代建议。有更好的算法时将进行更新。


太酷了!谢谢你的分享!;) - Luke Taylor

1

振动器类不允许这样做,您只能设置模式和持续时间:

vibrate(long[] pattern, int repeat)

vibrate(long milliseconds)

强度与硬件 "振动马达" 相关。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接