Android8.0 ZenMode 静音模式
静音模式的实现代码在
frameworks/base/services/core/java/com/android/server/notification
主要看这2个函数。
有些我做了点修改。
private void applyRestrictions() {final boolean zen = mZenMode != Global.ZEN_MODE_OFF;// notification restrictionsfinal boolean muteNotifications =(mSuppressedEffects & SUPPRESSED_EFFECT_NOTIFICATIONS) != 0;// call restrictionsfinal boolean muteCalls = zen && !mConfig.allowCalls && !mConfig.allowRepeatCallers|| (mSuppressedEffects & SUPPRESSED_EFFECT_CALLS) != 0;// total silence restrictionsfinal boolean muteEverything = mZenMode == Global.ZEN_MODE_NO_INTERRUPTIONS;for (int usage : AudioAttributes.SDK_USAGES) {final int suppressionBehavior = AudioAttributes.SUPPRESSIBLE_USAGES.get(usage);if (suppressionBehavior == AudioAttributes.SUPPRESSIBLE_NEVER) {applyRestrictions(false /*mute*/, usage);} else if (suppressionBehavior == AudioAttributes.SUPPRESSIBLE_NOTIFICATION) {applyRestrictions(muteNotifications || muteEverything||mGameMode, usage);} else if (suppressionBehavior == AudioAttributes.SUPPRESSIBLE_CALL) {applyRestrictions(muteCalls || muteEverything||mGameMode, usage);} else if(usage==AudioAttributes.SDK_USAGES[4]) {//AlarmapplyRestrictions(mGameMode, usage);}else {applyRestrictions(muteEverything, usage);}}}
private void applyZenToRingerMode() {if (mAudioManager == null) return;// force the ringer mode into compliancefinal int ringerModeInternal = mAudioManager.getRingerModeInternal();int newRingerModeInternal = ringerModeInternal;switch (mZenMode) {case Global.ZEN_MODE_NO_INTERRUPTIONS:case Global.ZEN_MODE_ALARMS:if (ringerModeInternal != AudioManager.RINGER_MODE_SILENT) {setPreviousRingerModeSetting(ringerModeInternal);newRingerModeInternal = AudioManager.RINGER_MODE_SILENT;}break;case Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS:case Global.ZEN_MODE_OFF:if (ringerModeInternal == AudioManager.RINGER_MODE_SILENT) {newRingerModeInternal = getPreviousRingerModeSetting();setPreviousRingerModeSetting(null);}break;}if (newRingerModeInternal != -1) {mAudioManager.setRingerModeInternal(newRingerModeInternal, TAG);}}
Android8.0 ZenMode 静音模式相关推荐
- Android开发笔记(一百六十七)Android8.0的画中画模式
前面的博文< Android开发笔记(一百五十九)Android7.0的分屏模式>介绍了Android7.0的多窗口特性,但是这个分屏的区域是固定的,要么在屏幕的上半部分,要么在屏幕的下半 ...
- Android-8.0应用夜间模式在旋转屏幕等操作后导致的日夜间模式切换混乱问题
关键字: Android-8.0 , android支持库实现的夜间模式, onConfigurationChanged() Google-io好像是在2016年在v7支持库内新增了一套夜间模式的实 ...
- Android5.0 静音模式下让闹钟仍然响铃
最近在看Android 5.0的代码,发现可以通过音量键来控制情景模式,而且在此次升级的静音模式可谓是完全静音了,就连闹钟都不会发音. 我要做一个可以在静音模式下选择闹钟是否仍然响铃的开关. 本文仅为 ...
- Android护眼模式、屏幕亮度调节功能开发【基于Android8.0】
Android护眼模式.屏幕亮度调节功能开发[基于Android8.0] [引言]网上关于写护眼模式,屏幕亮度调节的android的方法很少,找到的都不能很好的适配Android8.0的版本.于是自己 ...
- android 音量最小时会变为静音,无语的设计 Android 5.0竟无静音模式
或许谁也没有想到,已近乎完善的Android系统竟然会在看起来最不起眼的一个细节上犯下低级错误,那就是本文题目中笔者谈到的,缺少了静音模式.以往,当我们将音量调节至最低的时候会开启震动模式,而再次按音 ...
- android8 静音震动,iPhone8开启静音后手机振动怎么办?苹果8关闭静音模式震动的两种方法...
iPhone8静音模式振动关闭之后有什么作用 这里主要强调的是响铃模式震动表示又有声音又振动,而静音模式震动是只有振动没声音.也就说如果关闭了这一开关,那么就不会振动.不管你现在使用的是iOS10还是 ...
- 多键开关 android8.0,手机桌面多键开关(SwitchPro Widget )
7键开关SwitchPro Widget 是款主屏幕窗口小部件工具,可用于开启/关闭多种系统功能,支持多种自定义设置,比原生的电量控制开关好用很多. 7键开关SwitchPro Widget并非只有7 ...
- Android8.0适配那点事(二)
小伙伴们,咱们今天咱继续对Android8.0的适配进行分解,今天将针对启动页,版本适配和系统限制等进行"啃食" 1.启动页适配 近日,我无意中发现应用在8.0系统上面启动页崩溃, ...
- android8camera,[Android8.0/9.0/10]Camera:外接 USB 摄像头
概述 Android 平台支持使用即插即用的 USB 摄像头(即网络摄像头),但前提是这些摄像头采用标准的 Android Camera2 API 和摄像头 HIDL 接口.网络摄像头通常支持 USB ...
最新文章
- php中的css样式改变无反应,解决ecshop清除缓存css样式没反应问题
- SAP S4HANA里委外加工采购功能的变化
- Linux监控软件之 Cacti
- Android-完美解决在Activity中触摸返回键onBackPressed不能触发问题
- .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)...
- 分布式系统的构建原则
- eclipse编写wordcount提交spark运行
- MATLAB中如何生成指定范围的随机整数向量
- 12 行列式01---定义、计算 与性质、排列、逆序数、n 阶行列式、上三角形行列、矩阵的初等行变换与行列式性质
- 工作站Linux双显卡BIOS设置,在BIOS Setup里面设置双显卡机型的双显卡模式教程
- 系统学习机器学习之弱监督学习(一)--弱监督学习综述
- oracle查询 view,oracle view
- 统计工具代码同步安装和异步安装有何区别
- 日期,Wed Nov 24 2021 08:00:00 GMT+0800 (GMT+08:00) 相互转换
- sql注入--宽字节注入
- 人工客服为什么总是接不通?
- 塑胶模具设计之冷却系统
- 爱奇艺小程序陪你嗨一夏
- android 购物车操作并发,Android 购物车页面和逻辑实现
- UDC分类号查询(转载)