[RK3288][Android6.0] WiFi之NetworkAgent对评分的更新

本文探讨了在Rockchip Platform及Android 6.0系统中,如何通过NetworkAgent及其子类WifiNetworkAgent实现网络连接评分机制。在系统启动和WiFi状态变化时,NetworkAgent会触发并更新评分,这一过程涉及registerNetworkAgent、InternalHandler和rematchNetworkAndRequests等关键函数。当WiFi状态改变时,NetworkStateTrackerHandler会调用setNetworkDetailedState,进而更新网络信息。
摘要由CSDN通过智能技术生成

Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

上一篇看了NetworkFactory的使用过程,它是在系统初始化时就被创建,接下来在接入网络时NetworkAgent就会被创建,正是它通过NetworkFactory搭建的环境来触发网络连接评分机制

NetworkAgent和NetworkFactory类似,也是通过子类继承的方式去实现,这里对应的是WifiNetworkAgent,看其初始化过程
注册过程:

public void enter() {
    //最后一个参数是score,当前设置是60
    mNetworkAgent = new WifiNetworkAgent(getHandler().getLooper(), mContext,
            "WifiNetworkAgent", mNetworkInfo, mNetworkCapabilitiesFilter,
            mLinkProperties, 60); 
}
public WifiNetworkAgent(......int score) {
    //调用父类构造函数
    super(l, c, TAG, ni, nc, lp, score);
}

父类构造函数是NetworkAgent():

public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
        NetworkCapabilities nc, LinkProperties lp, int score, NetworkMisc misc) {
    //获取connectivity service
    ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(
            Context.CONNECTIVITY_SERVICE);
    //注册当前NetworkAgent到connectivity service中,关注其中的score参数
    netId = cm.registerNetworkAgent(new Messenger(this), new NetworkInfo(ni),
            new LinkProperties(lp), new NetworkCapabilities(nc), score, misc);
}

注册函数registerNetworkAgent()

public int
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值