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了

更多相关文章

  1. Android(安卓)应用之安全开发
  2. Android的四种监听事件处理方式
  3. 《第一行代码》读完总结
  4. 用HTML5来开发一款android本地化App游戏-宝石碰碰
  5. Android的简单应用(三)——为你的程序添加监听器
  6. Android——《Android第一行代码》10.6节服务的最佳实践,应用8.0
  7. Android中Activity生命周期说明及使用
  8. Android获取SD卡总容量,可用大小,机身内存总容量及可用大小的系统
  9. android注入so,有代码有命令

随机推荐

  1. Android(安卓)AndroidManifest.xml 结构
  2. android 软件安装-更新-卸载
  3. Android(安卓)Surface 使用总结
  4. android手势操作&&实现滑动切换activity
  5. React-Native-StatusBar
  6. android 对pdf文件的下载、缓存、显示,包
  7. Android高手秘笈之自定义View的属性
  8. (三)Kotlin 高阶函数
  9. eclipse,android keystore
  10. Android(安卓)frameworks去掉熄屏前先变