OpenHarmony开发者论坛

标题: 查了一下文档arkts好像没有关闭以太网的接口。请问大佬们有别的办法在应用层上实现关闭以太网吗 [打印本页]

作者: xq_qyh    时间: 2024-2-2 09:12
标题: 查了一下文档arkts好像没有关闭以太网的接口。请问大佬们有别的办法在应用层上实现关闭以太网吗
我也尝试了用napi的方法写但是也不行(上传了测试用的demo,请大佬们帮忙看一下)

![]()

![]()

作者: momo    时间: 2024-2-26 09:27
1.新建init services如下,放到/system/etc/init/  
  1. {
  2.     "jobs" : [{
  3.             "name" : "param:sys.ifconfig.eth0=up",
  4.             "condition" : "sys.ifconfig.eth0=up",
  5.             "cmds" : [
  6.                 "start if_eth0_up"
  7.             ]
  8.         }, {
  9.             "name" : "param:sys.ifconfig.eth0=down",
  10.             "condition" : "sys.ifconfig.eth0=down",
  11.             "cmds" : [
  12.                 "start if_eth0_down"
  13.             ]
  14.         }
  15.     ],
  16.         "services" : [{
  17.             "name" : "if_eth0_up",
  18.             "start-mode" : "condition",
  19.             "path" : ["/system/bin/ifconfig", "eth0", "up"],
  20.             "disabled" : 1,
  21.             "sandbox" : 0,
  22.             "uid" : "root",
  23.             "gid" : ["shell"],
  24.             "once" : 1,
  25.             "secon" : "u:object_r:sh_exec:s0"
  26.         },
  27.         {
  28.             "name" : "if_eth0_down",
  29.             "start-mode" : "condition",
  30.             "path" : ["/system/bin/ifconfig", "eth0", "down"],
  31.             "disabled" : 1,
  32.             "sandbox" : 0,
  33.             "uid" : "root",
  34.             "gid" : ["shell"],
  35.             "once" : 1,
  36.             "secon" : "u:object_r:sh_exec:s0"
  37.         }
  38.     ]
  39. }
复制代码


2.应用端使用
import systemparameter from '@ohos.systemparameter';
//关掉以太网
  try {
    systemparameter.setSync("sys.ifconfig.eth0", "down");
  }catch(e){
    console.log("set unexpected error: " + e);
  }
  //打开以太网
try {
  systemparameter.setSync("sys.ifconfig.eth0", "up");
}catch(e){
  console.log("set unexpected error: " + e);
}
作者: xq_qyh    时间: 2024-2-26 17:30
回复 momo: 大佬好厉害啊
作者: xq_qyh    时间: 2024-2-27 11:34
回复 xq_qyh: 如果说我要把它内置到源码里去应该放在哪个目录下面呢,我尝试了一下放在base\startup\init\services\etc\目录下,但是好像并没有生效
作者: momo    时间: 2024-2-27 13:53
回复 xq_qyh: 新建ifconfig_eth.cfg保存上面回复内容,然后把文件编译到/system/etc/init/ 这个目录就行
主要修改BUILD.gn添加
ohos_prebuilt_etc("ifconfig_eth.cfg") {
     source = "ifconfig_eth.cfg"
     relative_install_dir = "init"
     part_name = "product_rk3568"
  }
作者: xq_qyh    时间: 2024-2-28 09:07
回复 momo: 好的,谢谢大佬
作者: 18025342273    时间: 2024-4-1 15:15
mark一下




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5