android ICS 4.0.3 tablet模式 插入usb线 不提示sd卡已连接 解决方案

ICS 4.0.3 当把系统切换到tablet模式后,发现插入数据线,并不会弹出"usb已连接" 的提示,试了很多次都是一样,但当切换到 phone模式时,就可以正常显示,几经周折,看了两个多小时代码,终于把原因找到:

琢磨代码后发现,其实不仅是usb的问题,蓝牙连通时,闹钟响起后都一样不会在状态栏上显示状态。

这个是android自身bug,在tablet模式下,systemUI.apk里并没有注册对这些事件的监听,而这些事件的监听,android其实已经在phone模式下实现了,具体代码在

PhoneStatusBarPolicy  的构造函数内。所以只要我们实倒化一下PhoneStatusBarPolicy  就可以解决这个问题了

修正办法如下:

修改frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\tablet\TabletStatusBar.java

在头部引入

import com.android.systemui.statusbar.phone.PhoneStatusBarPolicy;

然后改start()方法成如下

    @Override
    public void start() {
        super.start(); // will add the main bar view
        PhoneStatusBarPolicy  mIconPolicy = new PhoneStatusBarPolicy(mContext);//这行是新增加的
    }

重新编译,再push 进入,重启后就OK了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C_Wayne

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值