Вы можете установить метод звонка в 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)
UPDATE: Для того, чтобы получить статус текущего режима аудио на
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")
}
В Docs сказано, что RINGER_MODE_SILENT режим отменит установку вибрировать.
PS: Согласно DOC прибудете/setVibrateSetting() ** метод ** осуждается уровня API 16. Примечание: Я нету Испытано код.
Я не собираюсь, чтобы выключить его. Просто нужно знать настройки системы. – iForests
Вы можете использовать комбинацию getRingerMode() и getVirateSetting(), чтобы получить желаемый эффект. –
Но getVirateSetting() устарел ... »Этот метод был устаревшим на уровне API 16. Приложения должны поддерживать свою собственную вибрирующую политику, основанную на текущем режиме звонка, который может быть запрошен с помощью getRingerMode()." – iForests