Android получить настройки вибрации - PullRequest
2 голосов
/ 24 февраля 2011

Мне нужно получить правильные настройки для вибратора, чтобы мое приложение учитывало настройки звука устройства. В следующем коде, если вибратор выключен (на моем телефоне, когда я уменьшаю громкость, это состояние, когда громкость выключена, а вибратор выключен, и одна, когда громкость выключена, вибратор включен). Когда телефон не вибрирует (проверяется звонком на это устройство), я по-прежнему включаю вибратор:

AudioManager audioManager = (AudioManager) PingerApplication.getInstance().getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
int vibrationSetting = audioManager.getVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION);
boolean vibrate;
switch(vibrationSetting) {
case AudioManager.VIBRATE_SETTING_ON:
    vibrate = true;
    break;
case AudioManager.VIBRATE_SETTING_OFF:
    vibrate = false;
    break;
case AudioManager.VIBRATE_SETTING_ONLY_SILENT:
    vibrate = (audioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE);
    break;
default:
    vibrate = false;
}

Я что-то не так делаю? Установка вибрации всегда AudioManager.VIBRATE_SETTING_ON

Ответы [ 2 ]

2 голосов
/ 24 декабря 2012

Вы также можете поставить галочку на AudioManager.getRingerMode (), например,

 AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
    if(audioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT)
    {
        // should not vibrate
    }
0 голосов
/ 27 сентября 2011

Согласно Javadoc, вы должны использовать AudioManager.shouldVibrate(int) вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...