关于Android系统在开机后无法自动连接以太网的问题

本文讲述了在Android 4.4系统中遇到开机后以太网无法自动连接的问题,经过排查发现是由于DHCP启动延迟导致。通过分析源码和系统状态节点,找到了解决方案,即修改`isEthernetDeviceUp`方法的判断逻辑,以正确检测网线插入状态,从而实现开机自动联网功能。
摘要由CSDN通过智能技术生成

Android系统版本:4.4

以太网卡:RTL8152B


最近有个客户说想要在android板上加入以太网功能,就在淘宝上先买了一个RTL8152的USB网卡(RTL8152本身就是USB接口的),就着手开始了移植工作


其实Android4.4已经支持以太网了,如果手上的android源码不支持以太网功能的话,就要自己移植代码,方法的话网上一抓一大把,我这里就不再赘述了


我需要做的只是在linux内核中将RTL8152的驱动加进去,将网卡接入板子的USB口,就可以开机看效果了


果然!果然!果然!果然!果然!果然!


开机之后发现以太网无法连接,就算执行了netcfg eth0 up dhcp也不行。

很奇怪的是执行了netcfg eth0 up dhcp这句代码后,使用ifconfig看网卡信息可以发现网卡已经自动获取到了ip地址,而且也可以ping通外网,可是使用浏览器却提示无法连接网络


我还尝试了将以太网连接的优先级设为0(本身为9),也还是不行


查看logcat发现在以太网卡启动的时候,有如下打印:

I/SystemServer(  501): Connectivity Service
I/ethernet(  501): ==>android_net_ethernet_initEthernetNative
D/ConnectivityService(  501): ConnectivityService starting up
D/ConnectivityService(  501): wifiOnly=false
D/ConnectivityService(  501): *******netType=wifi,1,1,1,-1,true
D/ConnectivityService(  501): *******netType=ethernet,9,9,0,-1,true
E/ConnectivityService(  501): Ignoring protectedNetwork 10
E/ConnectivityService(  501): Ignoring protectedNetwork 11
E/ConnectivityService(  501): Ignoring protectedNetwork 12
E/ConnectivityService(  501): Ignoring protectedNetwork 14
D/ConnectivityService(  501): *******targetNetworkType=1
I/EthernetStateTracker(  501): Starts...
I/EthernetStateTracker(  501): Success
I/ethernet(  501): User ask for device name on 0, total:1
I/ethernet(  501): Found :eth0
V/EthernetService(  501): Ethernet dev enabled 2
I/EthernetService(  501): total found 1 net devices
I/EthernetService(  501):  device 0 name eth0
I/EthernetService(  501): s
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值