改了一个android6.0 的原生bug,bug本身十分简单,让人不明白为何google测试会没有发现这个bug,即当Airplane mode启动的时候,还可以通过StatusBar panel上的快捷方式来开启热点。在Setting中的开启热点很正常的被无效化了,但是快捷方式上仍然可以启动,这就出现了bug,首先StatusBar Panel 上的所有按键都继承了QSTile这个基类,只需要找到hotspot对应的处理类HotspotTile 在handleClick方法上加上一个判断就可以了,还有发现了一件事,那就是基本所有的系统状态都可以通过Context的配置文件来读取。例如这次的airplane mode:
Settings.Global.getInt(mContext .getContentResolver(),Settings.Global.AIRPLANE_MODE_ON, 0)
但是有个问题,mContext.getContentResolver()是从数据库中读取,在读取过程中很容易出现问题.但是,暂时在Hostpot中并没有其他简易的方法来代替.所以只能用这个