問題Android:如何在振動設置之間進行切換(始終,永不,僅在靜音模式下,僅在非靜音模式下)?再訪
尋找方法來切換之間:從不模式模式
- 始終
- 僅在靜音
- 僅在非靜音
這些選擇是通過路徑找到的 - - 菜單>>設置>>聲音>>振動---在手機上。
它是簡單的導航手機上的改變(順便說一句,我的手機是摩托羅拉Atrix 2採用Android 2.3.3),但我還沒有碰到過的方法在我的代碼使用。
代碼
我基本都點擊時要操縱震動設置按鈕。其中一個按鈕如下所示:
bSilent.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF);
Toast.makeText(getBaseContext(), "Set to Never", Toast.LENGTH_SHORT).show();
}
});
audioManager上面這段代碼的地方定義爲:
final AudioManager audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
,Android提供了AudioManager.setVibrateSetting,但它現在已經過時。相反,他們引用你到getRingerMode方法。
http://developer.android.com/reference/android/media/AudioManager.html
然而,使用這些函數(和它們的任意組合)不能有效地四個振動設置之間移動。例如,如果我從「始終」開始,那麼我看起來不可能達到「從不」。振動方法的所有組合只能在「始終」和「僅在靜音模式」之間移動。另一方面,如果我從「從不」開始,所提供的方法將只在「從不」和「僅在非靜音模式下」之間切換。
因此,假設我希望有我的手機在靜音模式,並希望它振動。然後,我決定我不希望它再振動。我無法從「始終」或「僅在無聲模式」切換到「從不」。
過去的解決方案和帖子
我知道這有點StackOverflow上重複的帖子。這個問題已經提出來了之前...
這裏:Vibrate settings on Android 2.2
和(最近)在這裏:Changing vibrate setting
前者的聯繫提供了一個「答案」。 LuthieR最終在討論中最終找到了自己的方式。他引用網站:
,並說:「我看了看com.android.settings的源代碼。設置類的使能和禁止震動的方法」複製一部分。
我通過這個網站大力看了看,沒找到他做了什麼。任何人都可以澄清他的解決辦法?
問題
有沒有人有辦法在「始終」,「從不」,「僅在靜音模式」和「僅在不處於靜音模式」之間精確切換?