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鸿蒙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权限需要用户手动授权,建议在应用启动时就进行权限申请。