2010-04-13 195 views
9

我試圖通過使用下面的代碼行來調用傳入呼叫時,將電話的振鈴模式更改爲RINGER_MODE_SILENT。Android:振鈴模式更改爲靜音不會阻止手機振動

AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE); 
am.setRingerMode(AudioManager.RINGER_MODE_SILENT); 

當手機鈴聲停止其繼續振動雖然RINGER_MODE_SILENT的文件說,它也應該停止振動。

我使用的SDK 1.6

UPDATE:

,因爲我沒有找到一個解決辦法呢,我試着手動關閉振動設置。

am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF); 

但是,這也不會阻止電話呼入時振動的電話形式。

任何想法?

更新2:

今天,我試圖通過經由振動對象抵消所述振動,以解決這個問題。

Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
vib.cancel(); 

再次,沒有成功。現在我已經沒有想法,問自己是否有可能停止振動。

更新3:

我發現當我重讀documentation of the Vibrator class另一個有趣的事實。該文件說:

「如果您的過程退出,您開始的任何振動 將停止。」

這聽起來對我來說就好像振動與啓動它的過程相關聯,並且不能從另一過程訪問。

回答

0

我也無法關閉此功能。

我使用了AudioManager的setVibrateSetting,在AudioManager.VIBRATE_TYPE_NOTIFICATION和0中加載,但在接收到文本消息時它仍然會振動。

我想知道是否有辦法完全覆蓋現在這個功能...

我覺得振動器的cancel()方法是振動是目前正在進行中。

1

對不起,這是Phone應用程序中的一個已知錯誤;它目前不收聽AudioManager.RINGER_MODE_CHANGED_ACTION廣播(這會告訴它停止振鈴和振動)。我建議在b.android.com處提交bug。

相關問題