如何在Lollipop系统中以编程方式静音设备?

5

我该如何在Lollipop设备上以编程方式将手机设置为静音?对于早期版本的设备,可以使用 AudioManager 类很好地完成此操作,但在Android 5.0及以上版本中,设备可以保持振动模式,但我无法将其静音。是否有人能帮我解决如何在程序中更改手机的音量模式(NONE,PRIORITY和ALL)的问题?

谢谢。


我读了这篇文章,这是问题所在吗?Lollipop没有0音量选项吗? - Chintan Rathod
2个回答

2
使用这段代码:
final AudioManager mode = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
    mode.setRingerMode(AudioManager.RINGER_MODE_SILENT);

同时需要在清单文件(manifest)中授予权限。

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

我在Android 5.0.1上尝试了这个功能,它可以在“单击事件”中设置手机的优先级,再次触发“单击事件”将把手机设置为无干扰模式。


1
这样做将仅在棒棒糖设备上将手机设置为振动模式! - Prashant Patel
在小米设备上这样做会将手机设置为振动模式! - Abhi
对于更新的设备,请查看此答案:https://dev59.com/a1kT5IYBdhLWcg3wB7TP#39152607 - vanomart
在小米手机上无法工作,它会将铃声和视频音量都静音。我想只静音手机铃声,不静音视频音量,有什么处理方法吗? - Sagar

1

将 RINGER_MODE_SILENT 替换为 RINGER_MODE_VIBRATE

AudioManager audiomanage = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audiomanage.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接