21天打卡Andoid学到的一些小知识-第十七十八天

简介: 今天我们学习打卡的内容是:Android 10.0 屏蔽掉 SystemUI 的通知提示音

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。


今天我们学习打卡的内容是:Android 10.0 屏蔽掉 SystemUI 的通知提示音

那直接进入分享:


在10.0SystemUI 中有一些高级别的通知在发出的时候会首选悬浮在状态栏(手机的状态栏在手机屏幕最上方,显示的就是手机现在的状态,比如:网络状况、现在时间、剩余电量等等的一栏)在其上面停留几秒钟后消失并且还会有通知提示音,今天的学习内容就是根据需求要求去掉悬浮通知同时也去掉通知提示音(大概就像现在手机功能中的免打扰功能吧)


这就要分析通知提示音是怎么发出来的


首先我们需要知道在SystemUI启动的时候会Start()一个媒体播放的类RingtonePlayer。

通知是通过RingtonePlayer 来播放通知声音 而 NotificationManagerService.java 中 负责管理通知声音的播放

frameworks\base\services\core\java\com\android\server\notification\NotificationManagerService.java


相关修改代码:

private boolean playSound(final NotificationRecord record, Uri soundUri) {
    boolean looping = (record.getNotification().flags & Notification.FLAG_INSISTENT) != 0;
    // play notifications if there is no user of exclusive audio focus
    // and the stream volume is not 0 (non-zero volume implies not silenced by SILENT or
    //   VIBRATE ringer mode)
    if (!mAudioManager.isAudioFocusExclusive()
            && (mAudioManager.getStreamVolume(
            AudioAttributes.toLegacyStreamType(record.getAudioAttributes())) != 0)) {
        final long identity = Binder.clearCallingIdentity();
        /*try {
            final IRingtonePlayer player = mAudioManager.getRingtonePlayer();
            if (player != null) {
                if (DBG) Slog.v(TAG, "Playing sound " + soundUri
                        + " with attributes " + record.getAudioAttributes());
                player.playAsync(soundUri, record.sbn.getUser(), looping,
                        record.getAudioAttributes());
                return true;
            }
        } catch (RemoteException e) {
        } finally {
            Binder.restoreCallingIdentity(identity);
        }*/
    }
    return false;
}


相关文章
|
9月前
|
数据安全/隐私保护 iOS开发 开发者
iOS 逆向编程(十八)Reveal 详细安装(以及安装问题解决)(上)
iOS 逆向编程(十八)Reveal 详细安装(以及安装问题解决)
372 0
|
9月前
|
监控 iOS开发
iOS 逆向编程(十八)Reveal 详细安装(以及安装问题解决)(下)
iOS 逆向编程(十八)Reveal 详细安装(以及安装问题解决)(下)
180 0
|
9月前
|
小程序 前端开发 JavaScript
小程序之吸星大法-搬部分页面为我用--【浅入深出系列004】
小程序之吸星大法-搬部分页面为我用--【浅入深出系列004】 这是我的CSDN 的文章 转过来,可能有些许错误。请留言
|
Android开发
21天打卡Andoid学到的一些小知识-第十五十六天
学习的最大理由是想摆脱平庸 今天我们学习打卡的内容是:Android 10.0 app获取不到序列号解决方案
79 0
|
Android开发
21天打卡Andoid学到的一些小知识-第十一十二天
今天我们学习打卡的内容是:Android 10.0 Launcher3 禁止首屏时钟AppWidget拖动到其他屏这个知识。
72 0
|
安全 Android开发
21天打卡Andoid学到的一些小知识-第十九二十二十一天
今天我们学习打卡的内容是:android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限
68 0
|
Android开发
21天打卡Andoid学到的一些小知识-第九十天
今天我们学习打卡的内容是:Android 9.0 10.0 Launcher3 时钟动态图标的定制化
72 0
|
Java 编译器 Android开发
修行Android Studio技巧到出神入化,快速涨薪-【代码模板】、【演示模式】、【自动断点】篇
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
306 0
|
开发工具 Android开发 开发者
鸿蒙、OpenHarmony、HarmonyOS傻傻的分不清楚。。。看这篇就够了
很多人对鸿蒙、OpenHarmony、HarmonyOS这些术语傻傻的分不清楚,那么本文就做一些解答。 6月4日,华为发布了《关于规范HarmonyOS沟通口径的通知》(以下简称《通知》),原文在网上都能搜到,这里就不贴了。本人对该通知做一些解读如下。
763 0
|
监控 NoSQL Unix
开源代码分析技巧之三——老外如是说
继续从深入分析开源代码说起,当然源码分析没有太多捷径可走。笔者只是探讨下,如何分析会更好些。特通过Samba技术邮件群组,向老外提问“如何更好的分析Samba源码”。
250 0