Android L 音量调节问题分析

       Android升到5.0或5.1之后,细心的同学可能会发现,在我们调节音量的时候,无法调到静音模式。音量调到1的时候,再往下调,就变成震动模式了。如果你说再按下键不就是静音模式了吗?其实这不是静音模式,而是禁止打扰的情景模式ZenMode。ZenMode分为禁止打扰,仅容许优先打扰内容,一律容许打扰。即在音量seekBar下面的3个按钮。而静音模式,震动模式,正常模式是属于RingerMode的。你可以用你的手机测试一下。你按音量键往下调到震动,再往上调一格,此时音量显示为1,图标是正常模式,然后重启手机。手机重启之后,进入Settings->Sound & notification,你会发现Ring volume的seekBar为0,但是图标显示的是正常模式。明明我在重启之前手机音量1了,而且手机的Ringtone是有声音的,怎么重启之后就变成0了呢?网上有人说用这个方法把手机就调成静音模式了,其实这不是静音模式,而是音量为0的正常模式。

      在我们按音量键调节音量时,首先在PhoneWindow.java中,被onKeyDown和onKeyUp捕获。最终的处理是在AudioService中实现,AudioService位于frameworks/base/media/java/android/media/下。
最终实现的方法是

private void adjustStreamVolume(int streamType, int direction, int flags,String callingPackage, int uid) {
          ………………
       if (((flags & AudioManager.FLAG_ALLOW_RINGER_MODES) != 0) ||
                (streamTypeAlias == getMasterStreamType())) {
            ………………
            final int r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值