harmony-utils之NetworkUtil,網絡相關工具類
harmony-utils 簡介與說明
harmony-utils 一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實用工具類,致力于助力開發者迅速構建鴻蒙應用。其封裝的工具涵蓋了APP、設備、屏幕、授權、通知、線程間通信、彈框、吐司、生物認證、用戶首選項、拍照、相冊、掃碼、文件、日志、異常捕獲、字符、字符串、數字、集合、日期、隨機、base64、加密、解密、JSON等一系列的功能和作,能夠滿足各種不同的開發需求。
picker_utils 是harmony-utils拆分出來的一個子庫,包含 PickerUtil、PhotoHelper、ScanUtil。
下載安裝ohpm i @pura/harmony-utils
ohpm i @pura/picker_utils
//全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
AppUtil.init(this.context);
}
API方法與使用
isDefaultNetMetered 檢查當前網絡上的數據流量使用是否被計量
let hasDefaultNet = NetworkUtil.isDefaultNetMeteredSync();
ToastUtil.showToast(`當前網絡上的數據流量使用是否被計量:${hasDefaultNet}`);
hasDefaultNet 檢查默認數據網絡是否被激活
let hasDefaultNet = NetworkUtil.hasDefaultNetSync();
ToastUtil.showToast(`默認數據網絡是否被激活:${hasDefaultNet}`);
getDefaultNet 獲取默認激活的數據網絡
let defaultNet = await NetworkUtil.getDefaultNet();
let jsonStr = JSON.stringify(defaultNet, null, 2);
getAppNet 獲取App綁定的網絡信息
let appNet = await NetworkUtil.getAppNet();
let jsonStr = JSON.stringify(appNet, null, 2);
getAllNets 獲取所有處于連接狀態的網絡列表
let allNet = await NetworkUtil.getAllNets();
let jsonStr = JSON.stringify(allNet, null, 2);
isNetworkAvailable 判斷當前設備網絡是否可用
let isNetwork = NetworkUtil.isNetworkAvailable();
ToastUtil.showToast(`當前網絡是否可用:${isNetwork}`);
hasNetMobile 判斷當前網絡是否是蜂窩網絡(移動網絡)
let hasNetMobile = NetworkUtil.hasNetMobile();
ToastUtil.showToast(`當前網絡是否是蜂窩網絡:${hasNetMobile}`);
hasNetWiFi 判斷當前網絡是否是Wi-Fi網絡
let hasNetWiFi = NetworkUtil.hasNetWiFi();
ToastUtil.showToast(`當前網絡是否是Wi-Fi網絡:${hasNetWiFi}`);
hasNetEthernet 判斷當前網絡是否是以太網網絡
let hasNetEthernet = NetworkUtil.hasNetEthernet();
ToastUtil.showToast(`當前網絡是否是以太網網絡:${hasNetEthernet}`);
hasNetVPN 判斷當前網絡是否是VPN網絡
let hasNetVPN = NetworkUtil.hasNetVPN();
ToastUtil.showToast(`當前網絡是否是VPN網絡:${hasNetVPN}`);
hasNetBearType 是否存在指定的網絡
let hasNet = NetworkUtil.hasNetBearType(connection.NetBearType.BEARER_WIFI);
ToastUtil.showToast(`是否存在指定的網絡:${hasNet}`);
getNetBearTypes 獲取網絡類型,數組里面只包含了一種具體的網絡類型
let netBearTypes = NetworkUtil.getNetBearTypes();
let jsonStr = JSON.stringify(netBearTypes, null, 2);
getNetBearType 獲取網絡類型
let type = await NetworkUtil.getNetBearType();
ToastUtil.showToast(`網絡類型:${type}`);
getNetCapabilities 獲取netHandle對應的網絡的能力信息
let netCapabilities = NetworkUtil.getNetCapabilitiesSync();
let jsonStr = JSON.stringify(netCapabilities, null, 2);
getConnectionProperties 獲取netHandle對應的網絡的連接信息
let connectionProperties = NetworkUtil.getConnectionPropertiesSync();
let jsonStr = JSON.stringify(connectionProperties, null, 2);
getIpAddress 獲取當前設備的IP地址(設備連接Wi-Fi后)
let ip = NetworkUtil.getIpAddress();
ToastUtil.showToast(ip);
register 訂閱指定網絡狀態變化的通知,支持多事件監聽回調
NetworkUtil.register((netHandle) = > {
LogUtil.error(`訂閱網絡可用事件回調:${JSON.stringify(netHandle)}`);
}, () = > {
LogUtil.error(`訂閱網絡不可用事件回調。`);
}, (netCapabilityInfo) = > {
LogUtil.error(`訂閱網絡能力變化事件回調:${JSON.stringify(netCapabilityInfo)}`);
}, (nNetConnectionPropertyInfo) = > {
LogUtil.error(`訂閱網絡連接信息變化事件回調:${JSON.stringify(nNetConnectionPropertyInfo)}`);
}, (netBlockStatusInfo) = > {
LogUtil.error(`訂閱網絡阻塞狀態事件回調:${JSON.stringify(netBlockStatusInfo)}`);
}, (netHandle) = > {
LogUtil.error(`訂閱網絡丟失事件回調:${JSON.stringify(netHandle)}`);
});
unregister 取消訂閱默認網絡狀態變化的通知
NetworkUtil.unregister();
ToastUtil.showToast("取消訂閱默認網絡狀態變化監聽");
isNRSupported 判斷當前設備是否支持NR(New Radio)。也就是5G。
let isNRSupported = NetworkUtil.isNRSupported();
ToastUtil.showToast(`當前設備是否支持NR:${isNRSupported}`);
isRadioOn 判斷Radio是否打開
let isRadioOn = await NetworkUtil.isRadioOn();
ToastUtil.showToast(`Radio是否打開:${isRadioOn}`);
getPrimarySlotId 獲取主卡所在卡槽的索引號
let slotId = await NetworkUtil.getPrimarySlotId();
ToastUtil.showToast(`主卡所在卡槽的索引號:${slotId}`);
getOperatorName 獲取運營商名稱
let operatorName = await NetworkUtil.getOperatorName();
ToastUtil.showToast(`運營商名稱:${operatorName}`);
getNetworkState 獲取網絡狀態
let networkState = await NetworkUtil.getNetworkState();
let jsonStr = JSON.stringify(networkState, null, 2);
getNetworkSelectionMode 獲取當前選網模式
let mode = await NetworkUtil.getNetworkSelectionMode();
let jsonStr = JSON.stringify(mode, null, 2);
getSignalInformation 獲取指定SIM卡槽對應的注冊網絡信號強度信息列表
let signalInformation = await NetworkUtil.getSignalInformation();
let jsonStr = JSON.stringify(signalInformation, null, 2);
getNetworkType 獲取網絡類型
let networkType = await NetworkUtil.getNetworkType();
ToastUtil.showToast(`網絡類型:${networkType}`);
getNetworkTypeStr 獲取網絡類型,返回字符類型
let networkType = await NetworkUtil.getNetworkTypeStr();
ToastUtil.showToast(`網絡類型:${networkType}`);
getDefaultCellularDataSlotId 獲取默認移動數據的SIM卡
let slotId = await NetworkUtil.getDefaultCellularDataSlotId();
ToastUtil.showToast(`默認移動數據的SIM卡:${slotId}`);
getCellularDataFlowType 獲取蜂窩數據業務的上下行狀態
let dataFlowType = await NetworkUtil.getCellularDataFlowType();
ToastUtil.showToast(`蜂窩數據業務的上下行狀態:${dataFlowType}`);
getCellularDataState 獲取分組交換域(PS域)的連接狀態
let state = await NetworkUtil.getCellularDataState();
ToastUtil.showToast(`分組交換域(PS域)的連接狀態:${state}`);
isCellularDataEnabled 檢查蜂窩數據業務是否啟用
let enabled = await NetworkUtil.isCellularDataEnabled();
ToastUtil.showToast(`蜂窩數據業務是否啟用:${enabled}`);
isCellularDataRoamingEnabled 檢查蜂窩數據業務是否啟用漫游
let enabled = await NetworkUtil.isCellularDataRoamingEnabled();
ToastUtil.showToast(`蜂窩數據業務是否啟用漫游:${enabled}`);
getDefaultCellularDataSimId 獲取默認移動數據的SIM卡ID。與SIM卡綁定,從1開始遞增
let simId = NetworkUtil.getDefaultCellularDataSimId();
ToastUtil.showToast(`默認移動數據的SIM卡ID:${simId}`);
isSimActive 獲取指定卡槽SIM卡是否激活
let isSimActive = await NetworkUtil.isSimActive(1);
ToastUtil.showToast(`卡槽2SIM卡是否激活:${isSimActive}`);
hasSimCard 獲取指定卡槽SIM卡是否插卡
let hasSimCard = await NetworkUtil.hasSimCard(1);
ToastUtil.showToast(`卡槽2SIM卡是否插卡:${hasSimCard}`);
getMaxSimCount 獲取卡槽數量
let count = NetworkUtil.getMaxSimCount();
ToastUtil.showToast(`卡槽數量:${count}`);
getSimOperatorNumeric 獲取指定卡槽SIM卡的歸屬PLMN(Public Land Mobile Network)號
let simOperatorNumeric = await NetworkUtil.getSimOperatorNumeric();
ToastUtil.showToast(`指定卡槽SIM卡的歸屬PLMN:${simOperatorNumeric}`);
getSimSpn 獲取指定卡槽SIM卡的服務提供商名稱
let simSpn = await NetworkUtil.getSimSpn();
ToastUtil.showToast(`指定卡槽SIM卡的服務提供商名稱:${simSpn}`);
getSimState 獲取指定卡槽的SIM卡狀態
let simState = await NetworkUtil.getSimState();
ToastUtil.showToast(`指定卡槽的SIM卡狀態:${simState}`);
getCardType 獲取指定卡槽SIM卡的卡類型
let cardType = await NetworkUtil.getCardType();
ToastUtil.showToast(`指定卡槽SIM卡的卡類型:${cardType}`);
創作不易,請給童長老點贊
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
Harmony
+關注
關注
0文章
104瀏覽量
2989
發布評論請先 登錄
相關推薦
熱點推薦
harmony-utils之LocationUtil,定位相關工具類
harmony-utils之LocationUtil,定位相關工具類 harmony-utils
harmony-utils之PreviewUtil,文件預覽工具類
harmony-utils之PreviewUtil,文件預覽工具類 harmony-utils 簡介與說明 [
harmony-utils之SnapshotUtil,截圖相關工具類
harmony-utils之SnapshotUtil,截圖相關工具類 harmony-utils
harmony-utils之WindowUtil,窗口相關工具類
harmony-utils之WindowUtil,窗口相關工具類 harmony-utils 簡
harmony-utils之AuthUtil,生物認證相關工具類
# harmony-utils之AuthUtil,生物認證相關工具類 ## harmony-utils
評論