2012-07-14 120 views
2

我目前正在進行一個項目,在那裏我想使用位於Android手機內的振動電機。Android:設置振動功率

我已經想通了,是設置在清單中的許可權和獲得振動器的一個實例:

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

會給我訪問它。至於我能看到的唯一方法,以使其振動是:

公共抽象無效振動(長毫秒)

公共抽象無效振動(長[]圖案,int重複)

但我想控制振動的力量:

如何控制振動的功率?

更新:

不宜的速度可通過改變電壓(或PWMing DC)控制的?

+0

你想打開和關閉控制振動? – Shalini 2012-07-14 10:57:32

+0

[控制Android手機振動強度的可能重複?是不是,我想控制振動的力量。是否有可能?](http://stackoverflow.com/questions/2888043/controlling-vibration-intensity-in-android-phones-is-it-possible) – 2012-07-14 10:59:46

+0

不,我想控制振動的力量。 – 2012-07-14 11:02:46

回答

1

Vibrator Class不允許這個,你可以只設置模式以及持續時間:

vibrate(long[] pattern, int repeat) 

vibrate(long milliseconds) 

強度與硬件 「Vibration Motor

1

誠然,API不提供直接控制振動強度的方法。但正如您在更新中所建議的那樣,PWM可用於產生各種脈衝寬度的振動模式,從而導致振動器電機的平均電壓較低(因而振動輸出較弱)。

我已經發布了一個簡單的概念驗證方法here。該方法將根據指定的強度生成一個模式。該方法的轉變並不是線性的,所以我發佈了一個獎勵,希望得到一些替代建議。將更新,當我有一個更好的算法。

+0

酷!感謝你的分享! ;) – 2013-12-31 16:57:34