android较新的版本中,已经加入了以太网功能,用户可在设置界面设置以太网的连接方式,如DHCP/静态IP/PPPOE。
显然,android的实现中默认以太网是作为一个出去的端口(相当于路由器的WAN口),用来分享外部的internet连接。
但是部分客户要求能实现以太网来分享设备的internet网络(4G/wifi),希望实现类似于wifi热点或者USB网络共享的功能,我把它定义为以太网网络共享(相当于路由器的lan口)。
实现以太网网络共享功能,分界面部分和framework两块。
开发
1、界面部分
网络共享的界面部分代码主要在src/com/android/settings/TetherSettings.java,我们需要在原有设置界面的wifi热点、USB网络共享等下面,加上我们的以太网网络共享的checkbox,仔细发现可看到如下代码:
addPreferencesFromResource(R.xml.tether_prefs);
找到tether_prefs.xml,添加checkbox选项即可:
<CheckBoxPreference
android:key="enable_bluetooth_tethering"
android:title="@string/bluetooth_tether_checkbox_text"
android:persistent="false" />