寻找方法来切换之间:从不模式模式
始终
仅在静音
仅在非静音
这些选择是通过路径找到的 - - 菜单>>设置>>声音>>振动---在手机上。
它是简单的导航手机上的改变(顺便说一句,我的手机是摩托罗拉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方法。
然而,使用这些函数(和它们的任意组合)不能有效地四个振动设置之间移动。例如,如果我从“始终”开始,那么我看起来不可能达到“从不”。振动方法的所有组合只能在“始终”和“仅在静音模式”之间移动。另一方面,如果我从“从不”开始,所提供的方法将只在“从不”和“仅在非静音模式下”之间切换。
因此,假设我希望有我的手机在静音模式,并希望它振动。然后,我决定我不希望它再振动。我无法从“始终”或“仅在无声模式”切换到“从不”。
过去的解决方案和帖子
我知道这有点StackOverflow上重复的帖子。这个问题已经提出来了之前...
前者的联系提供了一个“答案”。 LuthieR最终在讨论中最终找到了自己的方式。他引用网站:
,并说:“我看了看com.android.settings的源代码。设置类的使能和禁止震动的方法”复制一部分。
我通过这个网站大力看了看,没找到他做了什么。任何人都可以澄清他的解决办法?
问题
有没有人有办法在“始终”,“从不”,“仅在静音模式”和“仅在不处于静音模式”之间精确切换?