harmony-utils之NetworkUtil,網(wǎng)絡(luò)相關(guān)工具類
harmony-utils 簡(jiǎn)介與說(shuō)明
harmony-utils 一款功能豐富且極易上手的HarmonyOS工具庫(kù),借助眾多實(shí)用工具類,致力于助力開(kāi)發(fā)者迅速構(gòu)建鴻蒙應(yīng)用。其封裝的工具涵蓋了APP、設(shè)備、屏幕、授權(quán)、通知、線程間通信、彈框、吐司、生物認(rèn)證、用戶首選項(xiàng)、拍照、相冊(cè)、掃碼、文件、日志、異常捕獲、字符、字符串、數(shù)字、集合、日期、隨機(jī)、base64、加密、解密、JSON等一系列的功能和作,能夠滿足各種不同的開(kāi)發(fā)需求。
picker_utils 是harmony-utils拆分出來(lái)的一個(gè)子庫(kù),包含 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 檢查當(dāng)前網(wǎng)絡(luò)上的數(shù)據(jù)流量使用是否被計(jì)量
let hasDefaultNet = NetworkUtil.isDefaultNetMeteredSync();
ToastUtil.showToast(`當(dāng)前網(wǎng)絡(luò)上的數(shù)據(jù)流量使用是否被計(jì)量:${hasDefaultNet}`);
hasDefaultNet 檢查默認(rèn)數(shù)據(jù)網(wǎng)絡(luò)是否被激活
let hasDefaultNet = NetworkUtil.hasDefaultNetSync();
ToastUtil.showToast(`默認(rèn)數(shù)據(jù)網(wǎng)絡(luò)是否被激活:${hasDefaultNet}`);
getDefaultNet 獲取默認(rèn)激活的數(shù)據(jù)網(wǎng)絡(luò)
let defaultNet = await NetworkUtil.getDefaultNet();
let jsonStr = JSON.stringify(defaultNet, null, 2);
getAppNet 獲取App綁定的網(wǎng)絡(luò)信息
let appNet = await NetworkUtil.getAppNet();
let jsonStr = JSON.stringify(appNet, null, 2);
getAllNets 獲取所有處于連接狀態(tài)的網(wǎng)絡(luò)列表
let allNet = await NetworkUtil.getAllNets();
let jsonStr = JSON.stringify(allNet, null, 2);
isNetworkAvailable 判斷當(dāng)前設(shè)備網(wǎng)絡(luò)是否可用
let isNetwork = NetworkUtil.isNetworkAvailable();
ToastUtil.showToast(`當(dāng)前網(wǎng)絡(luò)是否可用:${isNetwork}`);
hasNetMobile 判斷當(dāng)前網(wǎng)絡(luò)是否是蜂窩網(wǎng)絡(luò)(移動(dòng)網(wǎng)絡(luò))
let hasNetMobile = NetworkUtil.hasNetMobile();
ToastUtil.showToast(`當(dāng)前網(wǎng)絡(luò)是否是蜂窩網(wǎng)絡(luò):${hasNetMobile}`);
hasNetWiFi 判斷當(dāng)前網(wǎng)絡(luò)是否是Wi-Fi網(wǎng)絡(luò)
let hasNetWiFi = NetworkUtil.hasNetWiFi();
ToastUtil.showToast(`當(dāng)前網(wǎng)絡(luò)是否是Wi-Fi網(wǎng)絡(luò):${hasNetWiFi}`);
hasNetEthernet 判斷當(dāng)前網(wǎng)絡(luò)是否是以太網(wǎng)網(wǎng)絡(luò)
let hasNetEthernet = NetworkUtil.hasNetEthernet();
ToastUtil.showToast(`當(dāng)前網(wǎng)絡(luò)是否是以太網(wǎng)網(wǎng)絡(luò):${hasNetEthernet}`);
hasNetVPN 判斷當(dāng)前網(wǎng)絡(luò)是否是VPN網(wǎng)絡(luò)
let hasNetVPN = NetworkUtil.hasNetVPN();
ToastUtil.showToast(`當(dāng)前網(wǎng)絡(luò)是否是VPN網(wǎng)絡(luò):${hasNetVPN}`);
hasNetBearType 是否存在指定的網(wǎng)絡(luò)
let hasNet = NetworkUtil.hasNetBearType(connection.NetBearType.BEARER_WIFI);
ToastUtil.showToast(`是否存在指定的網(wǎng)絡(luò):${hasNet}`);
getNetBearTypes 獲取網(wǎng)絡(luò)類型,數(shù)組里面只包含了一種具體的網(wǎng)絡(luò)類型
let netBearTypes = NetworkUtil.getNetBearTypes();
let jsonStr = JSON.stringify(netBearTypes, null, 2);
getNetBearType 獲取網(wǎng)絡(luò)類型
let type = await NetworkUtil.getNetBearType();
ToastUtil.showToast(`網(wǎng)絡(luò)類型:${type}`);
getNetCapabilities 獲取netHandle對(duì)應(yīng)的網(wǎng)絡(luò)的能力信息
let netCapabilities = NetworkUtil.getNetCapabilitiesSync();
let jsonStr = JSON.stringify(netCapabilities, null, 2);
getConnectionProperties 獲取netHandle對(duì)應(yīng)的網(wǎng)絡(luò)的連接信息
let connectionProperties = NetworkUtil.getConnectionPropertiesSync();
let jsonStr = JSON.stringify(connectionProperties, null, 2);
getIpAddress 獲取當(dāng)前設(shè)備的IP地址(設(shè)備連接Wi-Fi后)
let ip = NetworkUtil.getIpAddress();
ToastUtil.showToast(ip);
register 訂閱指定網(wǎng)絡(luò)狀態(tài)變化的通知,支持多事件監(jiān)聽(tīng)回調(diào)
NetworkUtil.register((netHandle) = > {
LogUtil.error(`訂閱網(wǎng)絡(luò)可用事件回調(diào):${JSON.stringify(netHandle)}`);
}, () = > {
LogUtil.error(`訂閱網(wǎng)絡(luò)不可用事件回調(diào)。`);
}, (netCapabilityInfo) = > {
LogUtil.error(`訂閱網(wǎng)絡(luò)能力變化事件回調(diào):${JSON.stringify(netCapabilityInfo)}`);
}, (nNetConnectionPropertyInfo) = > {
LogUtil.error(`訂閱網(wǎng)絡(luò)連接信息變化事件回調(diào):${JSON.stringify(nNetConnectionPropertyInfo)}`);
}, (netBlockStatusInfo) = > {
LogUtil.error(`訂閱網(wǎng)絡(luò)阻塞狀態(tài)事件回調(diào):${JSON.stringify(netBlockStatusInfo)}`);
}, (netHandle) = > {
LogUtil.error(`訂閱網(wǎng)絡(luò)丟失事件回調(diào):${JSON.stringify(netHandle)}`);
});
unregister 取消訂閱默認(rèn)網(wǎng)絡(luò)狀態(tài)變化的通知
NetworkUtil.unregister();
ToastUtil.showToast("取消訂閱默認(rèn)網(wǎng)絡(luò)狀態(tài)變化監(jiān)聽(tīng)");
isNRSupported 判斷當(dāng)前設(shè)備是否支持NR(New Radio)。也就是5G。
let isNRSupported = NetworkUtil.isNRSupported();
ToastUtil.showToast(`當(dāng)前設(shè)備是否支持NR:${isNRSupported}`);
isRadioOn 判斷Radio是否打開(kāi)
let isRadioOn = await NetworkUtil.isRadioOn();
ToastUtil.showToast(`Radio是否打開(kāi):${isRadioOn}`);
getPrimarySlotId 獲取主卡所在卡槽的索引號(hào)
let slotId = await NetworkUtil.getPrimarySlotId();
ToastUtil.showToast(`主卡所在卡槽的索引號(hào):${slotId}`);
getOperatorName 獲取運(yùn)營(yíng)商名稱
let operatorName = await NetworkUtil.getOperatorName();
ToastUtil.showToast(`運(yùn)營(yíng)商名稱:${operatorName}`);
getNetworkState 獲取網(wǎng)絡(luò)狀態(tài)
let networkState = await NetworkUtil.getNetworkState();
let jsonStr = JSON.stringify(networkState, null, 2);
getNetworkSelectionMode 獲取當(dāng)前選網(wǎng)模式
let mode = await NetworkUtil.getNetworkSelectionMode();
let jsonStr = JSON.stringify(mode, null, 2);
getSignalInformation 獲取指定SIM卡槽對(duì)應(yīng)的注冊(cè)網(wǎng)絡(luò)信號(hào)強(qiáng)度信息列表
let signalInformation = await NetworkUtil.getSignalInformation();
let jsonStr = JSON.stringify(signalInformation, null, 2);
getNetworkType 獲取網(wǎng)絡(luò)類型
let networkType = await NetworkUtil.getNetworkType();
ToastUtil.showToast(`網(wǎng)絡(luò)類型:${networkType}`);
getNetworkTypeStr 獲取網(wǎng)絡(luò)類型,返回字符類型
let networkType = await NetworkUtil.getNetworkTypeStr();
ToastUtil.showToast(`網(wǎng)絡(luò)類型:${networkType}`);
getDefaultCellularDataSlotId 獲取默認(rèn)移動(dòng)數(shù)據(jù)的SIM卡
let slotId = await NetworkUtil.getDefaultCellularDataSlotId();
ToastUtil.showToast(`默認(rèn)移動(dòng)數(shù)據(jù)的SIM卡:${slotId}`);
getCellularDataFlowType 獲取蜂窩數(shù)據(jù)業(yè)務(wù)的上下行狀態(tài)
let dataFlowType = await NetworkUtil.getCellularDataFlowType();
ToastUtil.showToast(`蜂窩數(shù)據(jù)業(yè)務(wù)的上下行狀態(tài):${dataFlowType}`);
getCellularDataState 獲取分組交換域(PS域)的連接狀態(tài)
let state = await NetworkUtil.getCellularDataState();
ToastUtil.showToast(`分組交換域(PS域)的連接狀態(tài):${state}`);
isCellularDataEnabled 檢查蜂窩數(shù)據(jù)業(yè)務(wù)是否啟用
let enabled = await NetworkUtil.isCellularDataEnabled();
ToastUtil.showToast(`蜂窩數(shù)據(jù)業(yè)務(wù)是否啟用:${enabled}`);
isCellularDataRoamingEnabled 檢查蜂窩數(shù)據(jù)業(yè)務(wù)是否啟用漫游
let enabled = await NetworkUtil.isCellularDataRoamingEnabled();
ToastUtil.showToast(`蜂窩數(shù)據(jù)業(yè)務(wù)是否啟用漫游:${enabled}`);
getDefaultCellularDataSimId 獲取默認(rèn)移動(dòng)數(shù)據(jù)的SIM卡ID。與SIM卡綁定,從1開(kāi)始遞增
let simId = NetworkUtil.getDefaultCellularDataSimId();
ToastUtil.showToast(`默認(rèn)移動(dòng)數(shù)據(jù)的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 獲取卡槽數(shù)量
let count = NetworkUtil.getMaxSimCount();
ToastUtil.showToast(`卡槽數(shù)量:${count}`);
getSimOperatorNumeric 獲取指定卡槽SIM卡的歸屬PLMN(Public Land Mobile Network)號(hào)
let simOperatorNumeric = await NetworkUtil.getSimOperatorNumeric();
ToastUtil.showToast(`指定卡槽SIM卡的歸屬PLMN:${simOperatorNumeric}`);
getSimSpn 獲取指定卡槽SIM卡的服務(wù)提供商名稱
let simSpn = await NetworkUtil.getSimSpn();
ToastUtil.showToast(`指定卡槽SIM卡的服務(wù)提供商名稱:${simSpn}`);
getSimState 獲取指定卡槽的SIM卡狀態(tài)
let simState = await NetworkUtil.getSimState();
ToastUtil.showToast(`指定卡槽的SIM卡狀態(tài):${simState}`);
getCardType 獲取指定卡槽SIM卡的卡類型
let cardType = await NetworkUtil.getCardType();
ToastUtil.showToast(`指定卡槽SIM卡的卡類型:${cardType}`);
創(chuàng)作不易,請(qǐng)給童長(zhǎng)老點(diǎn)贊
審核編輯 黃宇
-
Harmony
+關(guān)注
關(guān)注
0文章
108瀏覽量
3010
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論