当前位置: 首页 > news >正文

android中实现禁掉有线网络

 1.首先初始化mINetworkManagementServiceProxy 

// INetworkManagementService mNwService;
Object mINetworkManagementServiceProxy;public void init() {// IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);// mNwService = INetworkManagementService.Stub.asInterface(b);try {Class<?> smClass = Class.forName("android.os.ServiceManager");Method getService = smClass.getMethod("getService", new Class[]{String.class});getService.setAccessible(true);IBinder networkManagementBinder = (IBinder) getService.invoke(null, new Object[]{"network_management"});Class<?> iNMSClass = Class.forName("android.os.INetworkManagementService$Stub");Method asInterface = iNMSClass.getMethod("asInterface", new Class[]{IBinder.class});asInterface.setAccessible(true);mINetworkManagementServiceProxy = asInterface.invoke(null, new Object[]{networkManagementBinder});Log.d("Debug", "init: mINetworkManagementServiceProxy = " + mINetworkManagementServiceProxy);} catch (Throwable e) {Log.d("Debug", "init: get INetworkManagementServiceProxy failed !!! ");}
}

 2.初始化完成后,打开关闭eth0

//打开有线网
private void openEth0() {try {Method setInterfaceUp = mINetworkManagementServiceProxy.getClass().getMethod("setInterfaceUp", new Class[]{String.class});setInterfaceUp.setAccessible(true);setInterfaceUp.invoke(mINetworkManagementServiceProxy, "eth0");} catch (Throwable e) {Log.d("Debug", "openEth0: failed !!! ");}
}
//禁用有线网
private void closeEth0() {try {Method setInterfaceDown = mINetworkManagementServiceProxy.getClass().getMethod("setInterfaceDown", new Class[]{String.class});setInterfaceDown.setAccessible(true);setInterfaceDown.invoke(mINetworkManagementServiceProxy, "eth0");} catch (Throwable e) {Log.d("Debug", "closeEth0: failed !!! ");}
}

如果报错,抛出安全异常的话,需要添加权限:(我没有添加也是可以的)

<uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
<uses-permission android:name="android.permission.NETWORK_STACK" />
<uses-permission android:name="android.permission.MAINLINE_NETWORK_STACK" />

可能只有system app可以使用,但不确定,待验证!

http://www.lryc.cn/news/425725.html

相关文章:

  • docker-compose安装MongoDB 7.0.12
  • Ubuntu下NFS和SSH服务
  • 游戏管理系统
  • 坐牢第二十七天(聊天室)
  • C++自学笔记33(数据类型总结与变量)
  • 游戏引擎phaser.js3的使用之玩家和静态物理组碰撞
  • springboot整合mybatis以及mybatis-plus 开发
  • 大语言模型微调框架Unsloth:简化模型微调流程,提升模型性能
  • IPD-华为研发之道分析与理解
  • 时空序列顶会文章
  • C语言-使用指针数组作为函数参数,实现对10个字符串进行排序
  • ???ABC366:F - Maximum Composition(dp,无序:贪心排序)
  • unity项目打包为webgl后应用于vue项目中(iframe模式)的数据交互
  • 【数据结构与算法 | 图篇】Bellman-Ford算法(单源最短路径算法)
  • Python | Leetcode Python题解之第336题回文对
  • C语言家教记录(六)
  • C++竞赛初阶L1-11-第五单元-for循环(25~26课)519: T454430 人口增长问题
  • demo测试
  • TinTinLand Web3 + DePIN 共学月|深入探索 DePIN 项目,全景分析去中心化网络未来
  • Java并发编程(六)
  • k8s对外服务之Ingress
  • 使用Python+moviepy在视频画面上绘制边框
  • 灵办AI探索之旅:颠覆传统的代码开发工具
  • 【Redis】Redis 数据类型与结构—(二)
  • Tomcat初篇
  • 机器学习(2)-- KNN算法之手写数字识别
  • 【机器人】关于钉钉机器人如何进行自定义开发问答【详细清晰】
  • Qt:exit,quit,close的用法及区别
  • Linux——进程地址空间
  • 信创(国产化)方案