5

私は現在、Androidフォンの内部にある振動モーターを使用したいプロジェクトに取り組んでいます。

マニフェストに適切な許可を設定し、バイブレーターのインスタンスを取得することを理解しました。

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

私にそれへのアクセスを与えるでしょう。私が見る限り、それを振動させる唯一の方法は次のとおりです。

public abstract void vibrate(長いミリ秒)

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

それでも私は振動の力を制御したいと思います:

どうすれば振動の力を制御できますか?

アップデート:

電圧(またはPWMing DC)を変えることによって速度を制御するべきではありませんか?

4

3 に答える 3

5

以下のように、強度を制御することは不可能だと思います。デバイスがそれほど速く振動しないように、短いバーストを使用することができますか?しかし、私はこれを個人的にテストしていません。

http://developer.android.com/reference/android/os/Vibrator.html そして Android携帯の振動強度を制御しますか?出来ますか?

于 2012-07-14T11:02:16.643 に答える
2

確かに、APIは振動強度を制御する直接的な方法を提供していません。しかし、アップデートで提案したように、PWMを使用してさまざまなパルス幅の振動パターンを生成できるため、バイブレーターモーターへの平均電圧が低くなります(したがって、振動出力が弱くなります)。

ここに、簡単な概念実証方法を掲載しました。このメソッドは、指定された強度に基づいてパターンを生成します。その方法の移行は完全に直線的ではないので、うまくいけばいくつかの代替案を得るために賞金を投稿しました。さらに優れたアルゴリズムがあれば更新されます。

于 2013-12-31T14:55:42.227 に答える
1

バイブレータークラスではこれを許可していません。パターンと期間のみを設定できます。

vibrate(long[] pattern, int repeat)

vibrate(long milliseconds)

強度はハードウェア「振動モーター」に関連しています

于 2012-07-14T11:05:00.327 に答える