android ICS 4.0.3 tablet模式 插入usb线 不提示sd卡已连接 解决方案
2012-07-11 16:45
260 查看
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
在头部引入
然后改start()方法成如下
重新编译,再push 进入,重启后就OK了
琢磨代码后发现,其实不仅是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了
相关文章推荐
- android ICS4.0.3 切换到tablet模式,systemUi报错
- android ICS4.0.3去掉相机全景模式
- android4.0.3 phone 和 tablet 模式设置 修改点
- android ICS 4.0.3 报 java.lang.IllegalArgumentException: pointerIndex out of range 解决方案
- 关于VS2013连接Oracle数据库提示:“尝试加载oracle客户端时引发badimage,如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题”的解决方案。
- Android 5.1 去掉首次进入沉浸模式的提示
- Android4.0.3 USB OTG底层插入上报过程分析(1)
- 【解决方案】Android图片加载中drawable等图片资源报错,提示找不到该资源
- 在Linux下adb连接不上android手机的终极解决方案
- Mac OS X 上Android手机连接adb的解决方案。
- Android USB默认连接模式为MTP
- android 模拟器在大陆总是没提示,解决方案
- fedora下配置无线连接『无线网提示【设备未就绪(缺少固件)】』解决方案
- EasyRadius 从1.6升级到 1.65 提示:初始化连接失败,未找到可用的接口信息,解决方案
- 八、mac 无法连接android手机进行调试 解决方案
- editText android:windowSoftInputMode="adjustPan"模式下第二次点击editText软键盘覆盖输入框的解决方案
- android中自动提示、补全、连接的功能实现
- Android AutoCompleteTextView连接数据库自动提示的方法(附demo源码下载)
- Mac上Android手机无法连接解决方案
- Vista下刻录机插入光盘总提示“准备此空白光盘”的解决方案