HarmonyOS 鸿蒙Next中connection.getDefaultNetSync()报错201

HarmonyOS 鸿蒙Next中connection.getDefaultNetSync()报错201

let netHandle = connection.getDefaultNetSync();
console.log('----isDefaultNet---', JSON.stringify(netHandle))

真机模拟器 报错:Permission denied

我已经申请权限了

"requestPermissions": [
  {
    "name": 'ohos.permission.GET_NETWORK_INFO'
  },
  {
    "name": 'ohos.permission.GET_WIFI_INFO'
  },
  {
    "name": 'ohos.permission.INTERNET'
  }
],

更多关于HarmonyOS 鸿蒙Next中connection.getDefaultNetSync()报错201的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

开发者你好:我这边没有复现你的问题,HarmonyOS设备版本为5.0.0.155【API版本号】:5.0.4(16),模拟器版本【API版本号】:5.0.3(15) ,建议你这边重新尝试一下,或者提供更多信息。

更多关于HarmonyOS 鸿蒙Next中connection.getDefaultNetSync()报错201的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,connection.getDefaultNetSync()报错201通常表示网络连接不可用或未正确初始化。检查网络状态,确保设备已连接网络。确认权限声明,确保应用具有访问网络权限。若问题持续,检查设备网络配置,确保网络服务正常。

在HarmonyOS Next中,错误代码201表示权限不足。虽然您已经声明了权限,但还需要动态申请。GET_NETWORK_INFO是敏感权限,必须通过动态权限申请流程才能使用。

请补充以下代码进行动态权限申请:

import abilityAccessCtrl from '@ohos.abilityAccessCtrl';

// 检查并申请权限
async function requestPermission() {
  let atManager = abilityAccessCtrl.createAtManager();
  try {
    await atManager.requestPermissionsFromUser(this.context, 
      ['ohos.permission.GET_NETWORK_INFO']);
    console.log('权限申请成功');
  } catch (err) {
    console.error('权限申请失败:', err);
  }
}

// 调用示例
requestPermission().then(() => {
  let netHandle = connection.getDefaultNetSync();
  console.log('----isDefaultNet---', JSON.stringify(netHandle));
});

另外请确保在config.json中也正确声明了权限:

"reqPermissions": [
  {
    "name": "ohos.permission.GET_NETWORK_INFO",
    "reason": "获取网络状态",
    "usedScene": {
      "ability": ["EntryAbility"],
      "when": "always"
    }
  }
]

注意:GET_NETWORK_INFO权限需要用户手动授权,建议在应用启动时就进行权限申请。

回到顶部