关于systemui wifi图标更新过程分析

项目systemui没有wifi图标,我不知道是在布局还是代码中隐藏了还是没有接收到wifi更新通知,所以看了下wifi图标更新的过程,有些东西可能受水平的局限,分析得不是很到位
首先systemui状态栏的主体在phonestatusbar这个类,在start()中可以看到
mNetworkController = new NetworkController(mContext);
final SignalClusterView signalCluster =(SignalClusterView)mStatusBarView.findViewById(R.id.signal_cluster);
mNetworkController.addSignalCluster(signalCluster);
signalCluster.setNetworkController(mNetworkController);
NetworkController是一个广播接收者,接收信号的改变,包括wifi,手机信号,飞行模式等
而SignalClusterView是一个自定义的布局,实现了SignalCluster接口,用于显示信号图标,在xml文件singal_cluster_view中使用,可以看到此布局下还放了细分的wifi,手机信号等布局,
而singal_cluster_view在布局status_bar中被include,而status_bar又被include在super_status_bar中,而super_status_bar在phonestatusbar中被填充为根布局
mStatusBarWindow = (StatusBarWindowView) View.inflate(context,R.layout.super_status_bar, null);
    
下面具体说下这2个类,首先NetworkController,我们在其构造方法中可以看到注册了这些广播,而且通过context.registerReceiver(this,filter)注册了自己  
 
public NetworkController(Context context) {
...
IntentFilter filter = new IntentFilter();
        filter.addAction(WifiManager.RSSI_CHANGED_ACTION);
        filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
        filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
        filter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED);
        filter.addAction(TelephonyIntents.SPN_STRINGS_UPDATED_ACTION);
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        filter.addAction(ConnectivityManager.INET_CONDITION_ACTION);
        filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);
        filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
        mWimaxSupported = mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_wimaxEnabled);
        if(mWimaxSupported) {
            filter.addAction(WimaxManagerConstants.WIMAX_NETWORK
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值