次のコード行を使用して、電話の着信時に電話の呼び出し音モードを RINGER_MODE_SILENT に変更しようとしています。
AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
RINGER_MODE_SILENTのドキュメントには、振動も停止する必要があると記載されていますが、電話の呼び出し音が停止しても振動し続けます。
SDK 1.6 を使用しています
アップデート:
まだ解決策が見つからなかったので、振動設定を手動で無効にしようとしました。
am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF );
ただし、これは、電話がかかってきたときに電話フォームが振動するのを防ぐものでもありません。
何か案は?
更新 2:
今日は、振動オブジェクトを介して振動をキャンセルすることで問題を解決しようとしました。
Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vib.cancel();
繰り返しますが、成功しません。今、私はアイデアを使い果たし、振動を完全に止めることができるかどうかを自問しています.
更新 3:
Vibrator クラスのドキュメントを読み直したときに、別の興味深い事実を発見しました。ドキュメントには次のように記載されています。
「プロセスが終了すると、開始したバイブレーションは停止します。」
これは、バイブレーションがそれを開始したプロセスにリンクされており、別のプロセスからアクセスできないように思えます。