2011-02-24 4 views
2

enter code here 내 애플리케이션이 기기의 사운드 설정을 준수하도록 진동기에 적합한 설정을 받아야합니다. 다음 코드에서 진동기가 꺼져있는 경우 (볼륨을 낮추면 전화기에서 볼륨이 꺼져 있고 진동기가 꺼져 있고 볼륨이 꺼져있는 상태에서 진동기가 켜져있는 상태)입니다. 내가 뭔가 잘못하고 있습니까android get vibration settings

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; 
} 

: 전화가 더 진동으로 설정 한 경우 (이 장치를 호출하여 확인), 난 여전히에 것으로 진동을 얻을? vibrationSetting은 항상 AudioManager.VIBRATE_SETTING_ON

답변

0

입니다. Javadoc에 따르면, 대신 AudioManager.shouldVibrate(int)을 사용해야합니다.

+0

이것은 사용되지 않습니다. –

2

AudioManager.getRingerMode()에 체크 표시 할 수도 있습니다 (예 :

AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); 
    if(audioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT) 
    { 
     // should not vibrate 
    } 
관련 문제