Android WIFI和有线网络优先级问题

本文介绍了在Android 4.4版本中如何实现有线网络优先于WIFI的配置。通过分析`ConnectivityService`源码,发现网络优先级由`mActiveDefaultNetwork`和`mNetworkPreference`两个变量决定。有线网络(ethernet)的优先级在资源文件中定义,默认值为2,但实际应用中可能被设备目录下的overlay文件覆盖。通过调整overlay中的优先级设置和`mNetworkPreference`,成功实现了有线网络优先。
摘要由CSDN通过智能技术生成

版本:Android 4.4

做TV方案需要添加一个有线网络优先功能,而Android中默认为WIFI优先

首先从安卓对外开放的接口入手,通过

ConnectivityManager.getActiveLinkProperties();

方法能够获取到当前网络连接的对象,通过此对象可以解析IP,网关,DNS等信息,这些不是本篇重点,如何解析这些内容下次单独列一篇文章。

通过这个接口方法,找到在Framework中ConnectivityService.java的实现

可以看到通过 mActiveDefaultNetwork这个变量在getLinkProperties方法中获取到了我们需要的信息。

在ConnectivityService中查找mActiveDefaultNetwork这个变量赋值的地方,可以看到在handleConnect方法中对mActiveDefaultNetwork进行了赋值

 handleConnect方法是私有方法,继续在ConnectivityService类中查找handleConnect的调用,最终查询到是在NetworkStateTrackerHandler的handleMessage中的NetworkStateTracker.EVENT_STATE_CHANGED这一条消息有对handleConnect方法进行调用。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值