根据文件,
getRingerMode() 返回当前铃声模式,RINGER_MODE_NORMAL、RINGER_MODE_SILENT 或 RINGER_MODE_VIBRATE 之一。
但是应该有4种模式吧?
声音开,振动关:我怎么知道设置是这个?
声音打开,振动打开:RINGER_MODE_NORMAL
声音关闭,振动关闭:RINGER_MODE_SILENT
声音关闭,振动打开:RINGER_MODE_VIBRATE
请帮帮我。谢谢你。
根据文件,
getRingerMode() 返回当前铃声模式,RINGER_MODE_NORMAL、RINGER_MODE_SILENT 或 RINGER_MODE_VIBRATE 之一。
但是应该有4种模式吧?
声音开,振动关:我怎么知道设置是这个?
声音打开,振动打开:RINGER_MODE_NORMAL
声音关闭,振动关闭:RINGER_MODE_SILENT
声音关闭,振动打开:RINGER_MODE_VIBRATE
请帮帮我。谢谢你。
您可以将振铃方法设置为 RINGER_MODER_NORMAL(声音和振动开启),并将振动设置单独设置为 VIBRATE_SETTING_OFF(完全关闭振动)或 VIBRATE_SETTING_ONLY_SILENT。(仅在静音模式下振动)如下:
关闭铃声振动:
setVibrateSetting (AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_OFF)
要关闭通知振动:
setVibrateSetting (AudioManager.VIBRATE_TYPE_NOTIFICATION,AudioManager.VIBRATE_SETTING_OFF)
更新:通过以下方式获取当前音频模式的状态
if(getRingerMode ()==AudioManager.RINGER_MODE_NORMAL)
{ if((getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER))==AudioManager.AudioManager.VIBRATE_SETTING_OFF){
Log.d("Ringer Mode is":"ring with no vibraion")
}
else{
Log.d("Ringer Mode is":"ring with vibraion")
}
else if(getRingerMode ()==AudioManager.RINGER_MODE_SILENT){
if((getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER))==AudioManager.AudioManager.VIBRATE_SETTING_OFF){
Log.d("Ringer Mode is":"Silent with no vibraion")
}
else{
Log.d("Ringer Mode is":"Silent with vibraion")
}
}
else{
Log.d("Ringer Mode is":"Silent with vibraion")
}
在文档中据说它 RINGER_MODE_SILENT 模式将覆盖振动设置。
PS:根据 DOC get/setVibrateSetting()**方法在 API 级别 16 中被**弃用。注意:我没有测试过代码。
if (Settings.System.getInt(context.getContentResolver(), "vibrate_when_ringing", 0) == 1)
{
return true;
}
else if (Settings.System.getInt(context.getContentResolver(), "vibrate_when_ringing", 0) == 0)
{
return false;
}
我试过了,有用