Android实现手机静音

news/2024/11/29 22:44:45/

模块原本是放在miao课表中的,允许用户上课静音,但其他很多地方也可以用得到,所以特地把它摘出来详细写写。

静音

Android的铃响模式的设置是通过AudioManager(音频管理器)来实现的。
静音指来电后手机处于静音状态,无声音。

实现代码如下:

private void silentSwitchOn() {AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);if(audioManager != null){audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);audioManager.getStreamVolume(AudioManager.STREAM_RING);Log.d("Silent:", "RINGING 已被静音");}}private void silentSwitchOff() {AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);if(audioManager != null){audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);audioManager.getStreamVolume(AudioManager.STREAM_RING);Log.d("SilentListenerService", "RINGING 取消静音");}}

静音和振动两个中有一个发生变化时就需调用setRingerMode对状态进行设置,如下几种:

RINGER_MODE_SILENT 静音,且无振动

RINGER_MODE_VIBRATE 静音,但有振动

RINGER_MODE_NORMAL 正常声音,振动开关由setVibrateSetting决定.

当需要静音或关闭静音时调用函数即可。


注意:

但如果你的App在API23及以上时,很可能报错:

java.lang.SecurityException: Not allowed to change Do Not Disturb state

因为程序并未得到控制手机音量的权限,需要采取以下操作:

1)在AndroidManifest加入获取权限请求

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

2)在程序中添加是否允许用户触发 Do Not Disturb 的页面,即添加页面让用户选择是否授予音量操作的权限,代码如下:

//获取Do not disturb权限,才可进行音量操作private void getDoNotDisturb(){NotificationManager notificationManager =(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N&& !notificationManager.isNotificationPolicyAccessGranted()) {Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);startActivity(intent);}}

注:只有选择了allow,才可以进行音量控制,否则不可以。

之后便可以进行上文静音和震动的设置啦!


http://www.ppmy.cn/news/363600.html

相关文章

基于声网 iOS SDK 实现视频直播应用

视频互动直播是当前比较热门的玩法&#xff0c;我们经常见到有PK 连麦、直播答题、一起 KTV、电商直播、互动大班课、视频相亲等。本文将演示如何通过声网视频 SDK 在 iOS 端实现一个视频直播应用。话不多说&#xff0c;我们开始动手实操。 前提准备 在声网开发者控制台 Cons…

谷歌获取直播流数据包(摄像头,音频)

<!DOCTYPE html> <html lang"en"><head><title>测试 采取摄像头信息</title><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1"></head><b…

LiveGBS摄像机网页低延时无插件直播实现

背景需求 对于摄像机直播&#xff0c;客户反馈的最多就是实现web直播、摆脱插件&#xff0c;可以自定义集成等问题&#xff0c; 对于熟悉LiveGBS已经完美的解决了这些问题。然而对于web播放也存在一些问题&#xff0c;通常我们web播放RTMP流使用的是flash&#xff0c;在这个过…

android静音播放视频

Android 静音播放视频 使用videvocView来静音播放视频,像微信朋友圈小视频预览一样。 实现方法是给videoview注册一个setOnPreparedListener的监听&#xff0c;就绪后设置音量为0&#xff1b;代码如下&#xff1a; try {Uri uri Uri.parse(“xxx”);mVideoPlayer.setVideoUR…

谷歌又有手机黑科技:进入办公室就变静音,遇车祸自动报警

赖可 发自 凹非寺量子位 报道 | 公众号 QbitAI 更新一下软件&#xff0c;就像有了新手机。 谷歌Pixel手机的一大特色就是&#xff0c;随着软件更新&#xff0c;会不断下放新功能。这次又放出了第二波的新功能。快来看看这次都有哪些黑科技。 一个手势暂停音乐 隔空手势控制Moti…

保姆级教程!基于声网 Web SDK实现音视频通话及屏幕共享

前言 大家好&#xff0c;我是 小曾同学&#xff0c;小伙伴们也可以叫我小曾&#xff5e; 如果你想实现一对一音视频通话和屏幕共享功能&#xff0c;不妨来看看这篇文章&#xff0c;保姆级教程&#xff0c;不需要从零实现&#xff0c;直接集成声网 SDK 即可轻松上手。 本文也…

java实现24小时无人直播

一、大致步骤&#xff1a; 准备三个视频文件作为推流的素材&#xff0c;例如 video1.mp4, video2.mp4, video3.mp4。 安装 JDK 和 Maven&#xff0c;如果你还没有的话。 使用 Maven 创建一个 java 项目&#xff0c;并添加 ffmpeg-cli-wrapper 这个依赖&#xff0c;用于调用 ffm…

【h5 video】 播放与暂停 静音与取消静音

我尝试用jQuery控制HTML5视频&#xff0c;两个视频分别在两个tab中&#xff0c;我希望点中tab后&#xff0c;该tab里的视频可以立即播放&#xff0c;而另外tab里的视频能够停止。我的代码是这样的&#xff1a; $(#playMovie1).click(function(){ $(#movie1).play(); }); 但发现…