HarmonyOS第三十二课——NetConnection

165 阅读2分钟

网络连接的句柄。网络连接的状态

register**

register(callback: AsyncCallback): void

订阅指定网络状态变化的通知。

需要权限:ohos.permission.GET_NETWORK_INFO 参数:

参数名类型必填说明
callbackAsyncCallback回调函数。当订阅指定网络状态变化的通知成功,error为undefined,否则为错误对象。

// NetConnection 网络连接的句柄
let netCon: connection.NetConnection = connection.createNetConnection()
netCon.register((error:BusinessError) =>{
  console.log(json.stringify(error))
})

unregister

unregister(callback: AsyncCallback): void

取消订阅默认网络状态变化的通知。 参数:

参数名类型必填说明
callbackAsyncCallback回调函数。当取消订阅指定网络状态变化的通知成功,error为undefined,否则为错误对象。
// NetConnection 网络连接的句柄
let netCon: connection.NetConnection = connection.createNetConnection()

netCon.unregister((error:BusinessError)=>{
  console.log(json.stringify(error))
})

on('netAvailable')

on(type: 'netAvailable', callback: Callback<NetHandle>): void

订阅网络可用事件。此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。

on('netBlockStatusChange')

on(type: 'netBlockStatusChange', callback: Callback): void

订阅网络阻塞状态事件。此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。

on('netCapabilitiesChange')

on(type: 'netCapabilitiesChange', callback: Callback): void

订阅网络能力变化事件。此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。

on('netConnectionPropertiesChange')

on(type: 'netConnectionPropertiesChange', callback: Callback): void

订阅网络连接信息变化事件。此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。

on('netLost')

on(type: 'netLost', callback: Callback): void

订阅网络丢失事件。此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。

on('netUnavailable')

on(type: 'netUnavailable', callback: Callback): void

订阅网络不可用事件。此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。

说明

设备从无网络到有网络会触发netAvailable事件、netCapabilitiesChange事件和netConnectionPropertiesChange事件;

设备从有网络到无网络状态会触发netLost事件;

设备从WiFi到蜂窝会触发netLost事件(WiFi丢失)之后触发 netAvailable事件(蜂窝可用);

// NetConnection 网络连接的句柄
let netCon: connection.NetConnection = connection.createNetConnection()
netCon.register((error:BusinessError) =>{
 console.log(json.stringify(error))
})

// 订阅网络可用事件。调用register后,才能接收到此事件通知
netCon.on('netAvailable',(data:connection.NetHandle)=>{
 console.info("Succeeded to get data: " + JSON.stringify(data));
})

// 订阅网络阻塞状态事件。调用register后,才能接收到此事件通知
netCon.on('netBlockStatusChange',(data:connection.NetBlockStatusInfo) =>{
 console.info("Succeeded to get data: " + JSON.stringify(data));
})

//  订阅网络能力变化事件。调用register后,才能接收到此事件通知
netCon.on('netCapabilitiesChange',(data:connection.NetCapabilityInfo)=>{
 console.info("Succeeded to get data: " + JSON.stringify(data));
} )
// 订阅网络连接信息变化事件。调用register后,才能接收到此事件通知
netCon.on('netConnectionPropertiesChange',(data:connection.NetConnectionPropertyInfo)=>{
 console.info("Succeeded to get data: " + JSON.stringify(data));
})
// 订阅网络丢失事件。调用register后,才能接收到此事件通知
netCon.on('netLost',(data:connection.NetHandle)=>{
 console.info("Succeeded to get data: " + JSON.stringify(data));
})

//订阅网络不可用事件。调用register后,才能接收到此事件通知
netCon.on('netUnavailable',()=>{
 console.info("Succeeded to get unavailable net event");
})

netCon.unregister((error:BusinessError)=>{
 console.log(json.stringify(error))
})