[经验分享] OpenHarmonyV4.0系统获取设备网口的ip、网关 原创

lzu-njy 显示全部楼层 发表于 2024-10-31 15:22:36

实践环境

DevEco Studio Build Version:4.1.0.400

OSFullName:OpenHarmony-4.0.12.3

API版本:10

查找相关API

Network Kit中有一API:ethernet.getIfaceConfig可获取网口IP、网关、路由、子网掩码、DNS等信息。

OH官网链接:@ohos.net.ethernet (以太网连接管理)(系统接口)

1.png

测试与问题解决

在DevEco Studio中新建一个[OpenHarmony]empty ability,粘贴OH官网的示例代码。

import ethernet from '@ohos.net.ethernet'
import { BusinessError } from '@ohos.base'

ethernet.getIfaceConfig("eth0").then((data: ethernet.InterfaceConfiguration) => {
  console.log("getIfaceConfig promise mode = " + JSON.stringify(data.mode));
  console.log("getIfaceConfig promise ipAddr = " + JSON.stringify(data.ipAddr));
  console.log("getIfaceConfig promise route = " + JSON.stringify(data.route));
  console.log("getIfaceConfig promise gateway = " + JSON.stringify(data.gateway));
  console.log("getIfaceConfig promise netMask = " + JSON.stringify(data.netMask));
  console.log("getIfaceConfig promise dnsServers = " + JSON.stringify(data.dnsServers));
}).catch((error: BusinessError) => {
  console.log("getIfaceConfig promise error = " + JSON.stringify(error));
});

配置应用签名后,运行项目,将hap传输到开发板,查看hilog。

2.png

问题一

返回问题:错误码202,Caller is not allowed, need sys permissive

解决方法:参考此帖评论区给出的:api11 应用权限问题Caller is not allowed, need sys permissive:修改OpenHarmony\SDK\10\toolchains\lib目录下的UnsgnedReleasedProfileTemplate.json文件,主要修改bundle_info中apl、app-feature两个字段。

    "bundle-info":{
        "developer-id":"OpenHarmony",
        "distribution-certificate":"//略",
        "bundle-name":"com.example.myapplication",
        "apl":"system_core",
        "app-feature":"hos_system_app" //修改前为hos_normal_app
    },

3.png

然后关闭deveco studio重新打开,重新生成签名,run。

问题二

解决错误码201的问题后,再次运行项目后返回错误码201:EthernetService GetIfaceconfig no js permission

解决方法:在module.json5的requestPermissons字段中加入相关权限。

4.png

解决上述问题后,查看hilog,能正常获取到信息。

5.png

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部