Android 4.4 以太网网络共享功能研究和实现
?
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" />
??? <CheckBoxPreference
??????? android:key="enable_ethernet_tethering"
??????? android:title="@string/ethernet_tether_checkbox_text"
??????? android:persistent="false" />
?
接下來還需要修改config.xml,添加eth0接口;修改幾個strings.xml,比較簡單,這里不再贅述。
此外,原有的以太網設置和新加的以太網網絡共享只允許打開一個(即要么做wan口,要么做lan口),也需要在界面上控制,是通過調用ConnectivityManager/EthernetManager實現的。
2、framework部分
主要修改了tethering和connectivityManager部分,參考了usb網絡共享。
?
?測試
點擊以太網網絡共享,pc通過網線接入設備,pc可獲得IP且可通過設備的4G模塊訪問外網。
?
?bug及解決
1、拔出網線后,以太網網絡共享界面的checkbox自動disable。
2、PC切換網絡后,通過設備的dhcp服務器拿到IP的時間很長,60秒左右。
3、在設置界面打開wifi熱點和以太網共享多次,概率出現再次點擊界面后沒有反應。
通過修改相關代碼解決。
?
轉自:(戀深圳)
https://download.csdn.net/download/awdxzcvbnm/10233980
代碼下載:
https://download.csdn.net/download/wufoodjetsendl1001/10167610
https://download.csdn.net/download/awdxzcvbnm/10233980
?
總結
以上是生活随笔為你收集整理的Android 4.4 以太网网络共享功能研究和实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【七】springboot整合redis
- 下一篇: android sina oauth2.