【问题标题】:android get vibration settingsandroid获取振动设置
【发布时间】:2011-02-24 09:26:58
【问题描述】:

我需要为振动器设置正确的设置,以便我的应用程序尊重设备的声音设置。在下面的代码中,如果振动器关闭(在我的手机上,当我降低音量时,它是音量关闭且振动器关闭的状态,以及音量关闭时振动器打开的状态)。当手机设置为无振动(通过拨打此设备验证)时,我仍然认为振动器处于开启状态:

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

【问题讨论】:

    标签: android setting vibration


    【解决方案1】:

    您也可以检查 AudioManager.getRingerMode(),例如

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

    【讨论】:

      【解决方案2】:

      根据 Javadoc,您应该改用 AudioManager.shouldVibrate(int)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多