OpenHarmony开发者论坛

标题: OpenHarmonyV4.0系统获取设备网口的ip、网关 [打印本页]

作者: lzu-njy    时间: 2024-10-31 15:22
标题: OpenHarmonyV4.0系统获取设备网口的ip、网关
[md]### 实践环境

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 (以太网连接管理)(系统接口)](https://docs.openharmony.cn/page ... net-ethernet-sys.md)

![1.png](https://forums-obs.openharmony.c ... 7g1id1sh0eonal5.png "1.png")

### 测试与问题解决

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

```typescript
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](https://forums-obs.openharmony.c ... b5utcunkqufziri.png "2.png")

#### 问题一

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

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

```json
        "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](https://forums-obs.openharmony.c ... cqfctf771g18efj.png "3.png")

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

#### 问题二

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

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

![4.png](https://forums-obs.openharmony.c ... oljnhtl7do3q7nj.png "4.png")

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

![5.png](https://forums-obs.openharmony.c ... jmh37o1vhojl7jf.png "5.png")
[/md]




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