如何以编程方式检测 android 手机是不是处于静音模式
Posted
技术标签:
【中文标题】如何以编程方式检测 android 手机是不是处于静音模式【英文标题】:how can I detect whether the android phone in Silent mode programmatically如何以编程方式检测 android 手机是否处于静音模式 【发布时间】:2010-01-12 11:13:40 【问题描述】:如何判断手机是否处于静音模式?
我使用的是 android 1.5。我尝试使用“android.provider.Settings.ACTION_SOUND_SETTINGS”。它不工作。
【问题讨论】:
【参考方案1】:使用getRingerMode()
method in AudioManager
。
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;
【讨论】:
嗨,戴夫,有没有办法以编程方式切换静音和振动模式。setRingerMode()
in AudioManager
允许您更改铃声模式。
嗨,戴夫,我可以使用 am.setRingerMode(AudioManager.RINGER_MODE_SILENT); 处理静音模式;但使用 AudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF) 处理振动模式;没有任何线索
您到底想做什么?我不认为setVibrateSettings()
做你认为它做的事。【参考方案2】:
以下代码检查手机是否未处于静音模式,然后播放哔声,写为kotlin
:
val manager = getSystemService(Context.AUDIO_SERVICE) as AudioManager
manager.setStreamVolume(AudioManager.STREAM_MUSIC, 10, 0)
val notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
val player: MediaPlayer = MediaPlayer.create(applicationContext, notification)
if(manager.ringerMode != AudioManager.RINGER_MODE_SILENT)
player.start()
【讨论】:
以上是关于如何以编程方式检测 android 手机是不是处于静音模式的主要内容,如果未能解决你的问题,请参考以下文章