福州瑞芯微电子有限公司由于RK芯片的USB驱动内部没有处理字节对齐问题,所以所有调用USB传输接口的驱动必须自行处理好字节对齐。若发现kernel的log中打出USB相关报错,请确认如下补丁是否已经打上。SDK默认已经打上下述补丁。此外,若使用供应商提供的驱动代码,也需要参照下述补丁在驱动中调用USB传输接口的地方做相应处理。
diff--gita/kernel/drivers/net/usb/usbnet.cb/kernel/drivers/net/usb/usbnet.coldmode100644newmode100755indexd1ab169..809f416---a/kernel/drivers/net/usb/usbnet.c+++b/kernel/drivers/net/usb/usbnet.c@@-1103,6+1103,28@@netdev_tx_tusbnet_start_xmit(structsk_buff*skb,}}}+++length=((unsignedlong)skb->data)&0x3;+if(length){+if(skb_cloned(skb)||+((skb_headroom(skb)
下述接口代码存放于frameworks/base/ethernetpublicintgetEthernetConnectState()获取连接状态
0::未连接;1:连接中;2:已连接
publicintgetEthernetIfaceState()获取以太网接口状态(是否使能以太网)0:未使能;1:已使能
publicintgetEthernetCarrierState()
获取是否有载波信号(可用来判断网线是否已插入)0:无载波信号;1:有载波信号
publicbooleansetEthernetEnabled(booleanenabled)打开/关闭以太网
publicStringgetEthernetIfaceName()获取以太网接口名,一般为“eth0”
publicStringgetEthernetHwaddr(Stringiface)获取MAC地址
内部资料,不得扩散福州瑞芯微电子有限公司Page18of28福州瑞芯微电子有限公司此外还可以在应用程序中监听如下Intent消息以获取接口和连接状态
publicstaticfinalStringETHERNET_STATE_CHANGED_ACTION=
\
publicstaticfinalStringEXTRA_ETHERNET_STATE=\public
static
final
String
ETHERNET_IFACE_STATE_CHANGED_ACTION
=
\
publicstaticfinalStringEXTRA_ETHERNET_IFACE_STATE=\publicstaticfinalintETHER_STATE_DISCONNECTED=0;publicstaticfinalintETHER_STATE_CONNECTING=1;publicstaticfinalintETHER_STATE_CONNECTED=2;publicstaticfinalintETHER_IFACE_STATE_DOWN=0;publicstaticfinalintETHER_IFACE_STATE_UP=1;
此外,以太网相关接口的具体调用,包括静态IP的设置方法等,可参考如下目录中的代码
packages/apps/Settings/src/com/android/settings/ethernet
4.2Android5.0
Android5.0中google集成了以太网框架代码,具体在:frameworks/opt/net/ethernet/
客户如果想自己开发以太网设置部分代码,可参考:src/com/android/settings/EthernetSettings.java
src/com/android/settings/SettingsPreferenceFragment.java
内部资料,不得扩散Page19of28src/com/android/settings/etherent_static_ip_dialog.javasrc/com/android/settings/getStaticIpInfo.java
福州瑞芯微电子有限公司Page20of28内部资料,不得扩散