静音模式的实现代码在
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 静音模式相关推荐

  1. Android开发笔记(一百六十七)Android8.0的画中画模式

    前面的博文< Android开发笔记(一百五十九)Android7.0的分屏模式>介绍了Android7.0的多窗口特性,但是这个分屏的区域是固定的,要么在屏幕的上半部分,要么在屏幕的下半 ...

  2. Android-8.0应用夜间模式在旋转屏幕等操作后导致的日夜间模式切换混乱问题

    关键字:  Android-8.0 , android支持库实现的夜间模式, onConfigurationChanged() Google-io好像是在2016年在v7支持库内新增了一套夜间模式的实 ...

  3. Android5.0 静音模式下让闹钟仍然响铃

    最近在看Android 5.0的代码,发现可以通过音量键来控制情景模式,而且在此次升级的静音模式可谓是完全静音了,就连闹钟都不会发音. 我要做一个可以在静音模式下选择闹钟是否仍然响铃的开关. 本文仅为 ...

  4. Android护眼模式、屏幕亮度调节功能开发【基于Android8.0】

    Android护眼模式.屏幕亮度调节功能开发[基于Android8.0] [引言]网上关于写护眼模式,屏幕亮度调节的android的方法很少,找到的都不能很好的适配Android8.0的版本.于是自己 ...

  5. android 音量最小时会变为静音,无语的设计 Android 5.0竟无静音模式

    或许谁也没有想到,已近乎完善的Android系统竟然会在看起来最不起眼的一个细节上犯下低级错误,那就是本文题目中笔者谈到的,缺少了静音模式.以往,当我们将音量调节至最低的时候会开启震动模式,而再次按音 ...

  6. android8 静音震动,iPhone8开启静音后手机振动怎么办?苹果8关闭静音模式震动的两种方法...

    iPhone8静音模式振动关闭之后有什么作用 这里主要强调的是响铃模式震动表示又有声音又振动,而静音模式震动是只有振动没声音.也就说如果关闭了这一开关,那么就不会振动.不管你现在使用的是iOS10还是 ...

  7. 多键开关 android8.0,手机桌面多键开关(SwitchPro Widget )

    7键开关SwitchPro Widget 是款主屏幕窗口小部件工具,可用于开启/关闭多种系统功能,支持多种自定义设置,比原生的电量控制开关好用很多. 7键开关SwitchPro Widget并非只有7 ...

  8. Android8.0适配那点事(二)

    小伙伴们,咱们今天咱继续对Android8.0的适配进行分解,今天将针对启动页,版本适配和系统限制等进行"啃食" 1.启动页适配 近日,我无意中发现应用在8.0系统上面启动页崩溃, ...

  9. android8camera,[Android8.0/9.0/10]Camera:外接 USB 摄像头

    概述 Android 平台支持使用即插即用的 USB 摄像头(即网络摄像头),但前提是这些摄像头采用标准的 Android Camera2 API 和摄像头 HIDL 接口.网络摄像头通常支持 USB ...

最新文章

  1. php中的css样式改变无反应,解决ecshop清除缓存css样式没反应问题
  2. SAP S4HANA里委外加工采购功能的变化
  3. Linux监控软件之 Cacti
  4. Android-完美解决在Activity中触摸返回键onBackPressed不能触发问题
  5. .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)...
  6. 分布式系统的构建原则
  7. eclipse编写wordcount提交spark运行
  8. MATLAB中如何生成指定范围的随机整数向量
  9. 12 行列式01---定义、计算 与性质、排列、逆序数、n 阶行列式、上三角形行列、矩阵的初等行变换与行列式性质
  10. 工作站Linux双显卡BIOS设置,在BIOS Setup里面设置双显卡机型的双显卡模式教程
  11. 系统学习机器学习之弱监督学习(一)--弱监督学习综述
  12. oracle查询 view,oracle view
  13. 统计工具代码同步安装和异步安装有何区别
  14. 日期,Wed Nov 24 2021 08:00:00 GMT+0800 (GMT+08:00) 相互转换
  15. sql注入--宽字节注入
  16. 人工客服为什么总是接不通?
  17. 塑胶模具设计之冷却系统
  18. 爱奇艺小程序陪你嗨一夏
  19. android 购物车操作并发,Android 购物车页面和逻辑实现
  20. UDC分类号查询(转载)

热门文章

  1. LittlevGL 6.0 移植到STM32F429平台
  2. Mobile - iPhone 的相册照片分享没有微信选项?
  3. 【论文笔记】基于点云柱面投影图的平面特征提取SLAM: Fast planar surface 3D SLAM using LIDAR 2017
  4. python+selenium多线程与多进程爬虫
  5. 从零开始构造一台二进制加法器
  6. 为了消除泡沫,直接把水工混凝土消泡剂给气到神志不清了
  7. Python实现名片管理系统
  8. 如何将音乐从iTunes传输到Android
  9. input输入框防抖
  10. 实训一#1.3拳王阿里