android 4.4 以太网网络共享功能研究和实现
来源:互联网 发布:海淘网转运 知乎 编辑:程序博客网 时间:2024/04/29 19:19
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热点和以太网共享多次,概率出现再次点击界面后没有反应。
通过修改相关代码解决。
- android 4.4 以太网网络共享功能研究和实现
- Android 实现以太网口共享3G网卡连接外网
- 以太网链路层网络拓扑发现方法研究
- 交换式以太网和共享式以太网区别
- 交换式以太网和共享式以太网区别
- 交换式以太网和共享式以太网区别
- 交换式以太网和共享式以太网区别
- 交换式以太网和共享式以太网区别
- Android 以太网Ethernet DHCP和静态设置实现
- android arraylist 研究共享
- Android KitKat 4.4 Wifi移植之AP模式与网络共享功能调试记录
- 【.Net MF网络开发板研究-06】以太网转串口
- android 以太网和wifi共存
- 共享式以太网与交换式以太网的性能比较(OPNET网络仿真实验)
- 【diannaoxitong】屏蔽网络共享功能
- Android应用网络限制功能实现
- Android 实现文件分享功能(共享多个文件)
- Android 实现文件分享功能(共享多个文件)
- vmstat详解
- android_58_service_remote_AIDL调用远程服务
- NPM常用命令
- LINUX命令总结
- 【前端学习连载日志】BOM顺利学完了
- android 4.4 以太网网络共享功能研究和实现
- c# 关于网站读取excel文档
- spark core 2.0 Executor ClassLoader
- 第一篇博客
- RegisterClass
- Python每日一练--------元组+字典+列表
- jedis 实现 redis 统计一个用户在一段时间内的登录次数
- 百度的文本编辑器 Ueditor 在服务器上报io异常 (服务器上使用的是tomcat)
- web导出excel格式问题