引言
项目需要搭载在平板上运行,有个需求是需要进行网络的设置—wifi和以太网。wifi的设置在网上已经有不少的demo,所以这里只谈谈这次以太网设置(这里只简单的说说以太网的开/关,如果需要其余的操作,例如去动态设置ip进行连接等,可以在后面的代码中自己实现)。其实如果平板在插入网线能自动打开以太网进行连接就不要这么麻烦了,怎奈我手上的设备还得去“设置中心”里手动设置才行,而App是不允许用户进到“设置中心”操作的。
瓶颈所在
搜了不少的网上资料,发现以太网设置其实是有一个类的—EthennetManager,通过一下方法就能进行以太网的开/关设置:
manage.setEthernetEnabled(boolean bl)
这不是很简单吗?!是啊,要是能够获取到这个EthernetManager类就真是的太简单的!!!
问题所在就是这个Ethernetmanager类并不是能很简单的进行获取到。我想肯定有大神表示不服,那我来说说不好获取的原因:
1. 代码中不能直接实例化,或者说你写出EthernetManager根本没出现导包的提示。因为Google想让它和你玩躲猫猫,所以给了它一顶@hide的隐身帽。
2. AS提供的SDK中每个版本的android.jar其实并不是完整的 ,是阉割版的,所以你可能会发现某个版本的android.jar中完全找不到EthernetManager这个类。
解决方案
针对上述2个难点来看看我们的解决方案。
1. 针对第一个难点,其实还是蛮好解决的,因为Java里有强大的反射机制;