OpenHarmony开发者论坛

标题: OpenHarmony5.0.0获取默认网络设备接口报错 [打印本页]

作者: Balaur    时间: 2025-3-14 11:02
标题: OpenHarmony5.0.0获取默认网络设备接口报错
[md]### 【问题描述】

1. 介绍问题现象和发生的背景

   如题,在使用@kit.NetworkKit中的getDefaultNetSync接口在运行时会提示接口异常并崩溃。
2. 相关的代码(请勿使用截图)

   ```typescript
   // import内容为import {connection} from '@kit.NetworkKit';
     getConnectionProperties() {
       // 获取默认网络
       const defaultNet = connection.getDefaultNetSync()
       if(defaultNet) {
         // 获取默认网络的链路信息
       const connectionProperties = connection.getConnectionPropertiesSync(defaultNet)
       // 提取链路信息
       const linkAddress = connectionProperties.linkAddresses[0]
       if (linkAddress) {
         // 获取 IP 地址
         this.IPAddress = linkAddress.address.address
         // // 计算子网掩码(了解)
         // this.subnetMask = this.calculateSubnetMask(linkAddress.prefixLength)
         // // 计算广播地址(了解)
         // this.broadcastAddress = this.calculateBroadcastAddress(this.IPAddress, this.subnetMask)
       }
     }
   ```
3. 运行结果、错误截图

   ![image.png](https://forums-obs.openharmony.c ... aij0agzez01i999.png "image.png")
4. 我想要达到的结果

   正常获取到默认设备或通过其他方式获取

### 【运行环境】

OH版本:5.0.0.71
DevEvoStudio版本:5.0.3
SDK版本:12
[/md]
作者: onefan    时间: 2025-3-17 19:50
import { connection } from '@kit.NetworkKit';

          let netHandle = connection.getDefaultNetSync();
          hilog.info(DOMAIN, '20250317 ', 'netHandle = ' + JSON.stringify(netHandle));

connection.getDefaultNetSync() 可以真常,sdk使用的fullsdk。

无网时获取的 {"netId":0},链接wifi时  {"netId":102}

作者: 王梦伟    时间: 2025-3-19 10:41
一样的问题,我的是5.0.2版本:

Device info:Orangepi 5Plus
Build info:OpenHarmony 5.0.2.123
Fingerprint:5ab01ae7763bdc5ef4cd91740764ae0bd7ac6ed605f5f680c5ebee33e827f646
Module name:com.example.hello_world
Version:1.0.0
VersionCode:1000000
PreInstalled:No
Foreground:Yes
Pid:6534
Uid:20010041
Reason:TypeError
Error name:TypeError
Error message:Cannot read property getDefaultNetSync of undefined
Stacktrace:
    at anonymous (entry/src/main/ets/pages/Index.ets:108:27)

作者: 王梦伟    时间: 2025-3-19 10:44
请问解决了吗?我也遇到了同样的问题。

Device info:Orangepi 5Plus
Build info:OpenHarmony 5.0.2.123
Fingerprint:5ab01ae7763bdc5ef4cd91740764ae0bd7ac6ed605f5f680c5ebee33e827f646
Module name:com.example.hello_world
Version:1.0.0
VersionCode:1000000
PreInstalled:No
Foreground:Yes
Pid:6534
Uid:20010041
Reason:TypeError
Error name:TypeError
Error message:Cannot read property getDefaultNetSync of undefined
Stacktrace:
    at anonymous (entry/src/main/ets/pages/Index.ets:108:27)

作者: 王梦伟    时间: 2025-3-20 12:44
回复 王梦伟: 已解决该问题,参照:https://laval.csdn.net/6788ae10911edf5f3b00f79e.html
作者: Balaur    时间: 2025-3-20 16:49
使用此类硬件相关接口时,需要注意是否使用了全量SDK(fullsdk),DevEco工具下载的sdk是用户级别的,不包含一些系统级别的api接口,所以会导致该问题出现。




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