Notification和Ring分离——AudioService中的改动

本文探讨了Android系统中AudioService如何处理StreamVolume,尤其是Notification和Ring的关系。在AudioService中,Notification、SYSTEM等StreamType的音量原本遵从Ring,当调整其中一个时,其他也会受影响。为了实现分离,需要修改使Notification音量不再受Ring控制。同时,Volume还受到RingerMode影响,不同模式下会影响特定Stream的静音状态,这一行为由mRingerModeAffectedStreams变量控制。
摘要由CSDN通过智能技术生成

在Android中,Stream的类型有以下11种:

 public static final int STREAM_VOICE_CALL = 0;
 public static final int STREAM_SYSTEM = 1;
 public static final int STREAM_RING = 2;
 public static final int STREAM_MUSIC = 3;
 public static final int STREAM_ALARM = 4;
 public static final int STREAM_NOTIFICATION = 5;
 public static final int STREAM_BLUETOOTH_SCO = 6;
 public static final int STREAM_SYSTEM_ENFORCED = 7;
 public static final int STREAM_DTMF = 8;
 public static final int STREAM_TTS = 9;
 public static final int STREAM_ACCESSIBILITY = 10;

每一种StreamType的Volume是可以单独控制的,但实际上,有的StreamType的Volume会遵从另一个StreamType的Volume。在AudioService中,用一个静态数组来表示这种关系,并且Phone(手机)的是这样的。

private final int[] STREAM_VOLUME_ALIAS_VOICE = new int[] {
        AudioSystem.STREAM_VOICE_CALL, // STREAM_VOICE_CALL
        AudioSystem.STREAM_RING, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值