AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

switch (am.getRingerMode()) {
    case AudioManager.RINGER_MODE_SILENT:
        Log.i("MyApp","Silent mode");
        break;
    case AudioManager.RINGER_MODE_VIBRATE:
        Log.i("MyApp","Vibrate mode");
        break;
    case AudioManager.RINGER_MODE_NORMAL:
        Log.i("MyApp","Normal mode");
        break;
}


从上面的代码仅检测一种模式。但我想检查2种模式,即振铃+振动还是静音+振动。

怎么可能?

最佳答案

没有任何方法可以使振铃+振动和静音+振动。众所周知,我们有三种获取铃声模式的方法。

AudioManager.RINGER_MODE_NORMAL
AudioManager.RINGER_MODE_SILENT
AudioManager.RINGER_MODE_VIBRATE


因此,您只需要创建一种方法即可检查振铃和振动情况

像振铃+震动。

public boolean statusRingVibrate(){
        boolean status = false;
        AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
        if(am.getRingerMode() == AudioManager.RINGER_MODE_NORMAL && am.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE){
            status = true;
        }
        return status;
    }

关于android - 如何检测Android手机的铃声并以编程方式振动?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26900729/

10-11 22:33