通过编程方式实现以太网连接(Android)(Root设备)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了通过编程方式实现以太网连接(Android)(Root设备),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2657字,纯文字阅读大概需要4分钟。
内容图文
我有一个关于以太网的小问题.
我的三个问题是:
>我们可以通过编程方式打开/关闭以太网吗?
>我们可以编程启用/禁用以太网吗?
>我们能以编程方式连接以太网吗?
以上问题是通过Wifi完成的.喜欢
>我们可以通过编程方式开启/关闭Wifi.
>我们可以通过编程方式启用/禁用Wifi.
>我们可以使用WifiManager以编程方式连接Wifi.
android是否提供任何EthernetManager,如WifiManager来处理以太网?
或者,如果这似乎不可行,那么我原来的要求是:
我要澄清的第一件事是“设备已经生根”.
我可以操作设置(默认)吗?就像我不希望除了WIFI和以太网之外的Settings.apk中的任何其他选项.它应该只显示Wifi和以太网.而已.我可以从“设置”中禁用所有选项,还是可以从“设置”中删除所有其他选项?
解决方法:
我将在这里介绍的解决方案是使用反射的hack,并且只适用于root系统.
您的设备可能有流行的android.net.ethernet包.在活动中,试试
Object emInstance = getSystemService("ethernet");
它返回EthernetManager的有效实例或null. Null意味着你运气不好.
另外一项要求可能取决于您的设备:以太网和Wifi可能仅适用于您的设备.您可能需要禁用Wifi以启用以太网,反之亦然.
要通过反射启用以太网,请使用EthernetManager的实例.
要调用的方法是setEthEnabled(启用布尔值)
Class<?> emClass = null;
try {
emClass = Class.forName("android.net.ethernet.EthernetManager");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Object emInstance = getSystemService("ethernet");
Method methodSetEthEnabled = null;
try {
methodSetEthEnabled = emClass.getMethod("setEthEnabled", Boolean.TYPE);
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
methodSetEthEnabled.setAccessible(true);
try {
// new Boolean(true) to enable, new Boolean(false) to disable
methodSetEthEnabled.invoke(emInstance, new Boolean(false));
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
您的应用程序清单需要这些权限
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
WRITE_SECURE_SETTINGS权限只能由系统应用获取.该应用程序不需要由系统密钥签名.它可以是任何有效的标志(如常规的Android App Export功能).使用busybox重新安装系统分区以进行写访问,并将apk移至/ system / app文件夹.重新启动设备,它应该工作.
Can we programmatically Connect Ethernet ?
没有接入点可以与Wifi连接.您可以将其配置为DHCP或提供静态值.这当然也可以通过反射来完成.
您将需要EthernetDevInfo类.
以太网管理器和EthernetDevInfo的实际实现可能在Android版本和设备之间略有不同,因为它不必符合公共API(还),甚至可能是自定义版本.
要获取getter和setter列表,您可以使用Introspector或反射.
内容总结
以上是互联网集市为您收集整理的通过编程方式实现以太网连接(Android)(Root设备)全部内容,希望文章能够帮你解决通过编程方式实现以太网连接(Android)(Root设备)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。