1c36cf2e9Sopenharmony_ci/* 2c36cf2e9Sopenharmony_ci * Copyright (c) 2023-2023 Huawei Device Co., Ltd. 3c36cf2e9Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c36cf2e9Sopenharmony_ci * you may not use this file except in compliance with the License. 5c36cf2e9Sopenharmony_ci * You may obtain a copy of the License at 6c36cf2e9Sopenharmony_ci * 7c36cf2e9Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c36cf2e9Sopenharmony_ci * 9c36cf2e9Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c36cf2e9Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c36cf2e9Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c36cf2e9Sopenharmony_ci * See the License for the specific language governing permissions and 13c36cf2e9Sopenharmony_ci * limitations under the License. 14c36cf2e9Sopenharmony_ci */ 15c36cf2e9Sopenharmony_ci 16c36cf2e9Sopenharmony_ciimport wifi from '@ohos.wifiManager' 17c36cf2e9Sopenharmony_ciimport { Log } from '@ohos/common'; 18c36cf2e9Sopenharmony_ci 19c36cf2e9Sopenharmony_ciconst TAG = 'WifiP2pHelper'; 20c36cf2e9Sopenharmony_ci 21c36cf2e9Sopenharmony_ciexport default class WifiP2pHelper { 22c36cf2e9Sopenharmony_ci async checkConnectState(printerId: string) { 23c36cf2e9Sopenharmony_ci Log.info(TAG, `checkConnectState enter...`); 24c36cf2e9Sopenharmony_ci let printerDevices = this.parsePrinterId(printerId); 25c36cf2e9Sopenharmony_ci Log.info(TAG, `printerDevices is ${printerDevices}`); 26c36cf2e9Sopenharmony_ci let connectInfo = await wifi.getP2pLinkedInfo(); 27c36cf2e9Sopenharmony_ci Log.info(TAG, `connectInfo is ${connectInfo.connectState}`); 28c36cf2e9Sopenharmony_ci if (connectInfo.connectState === P2pConnectState.CONNECTED) { 29c36cf2e9Sopenharmony_ci let groupInfo = await wifi.getCurrentGroup(); 30c36cf2e9Sopenharmony_ci if (groupInfo.ownerInfo.deviceAddress === printerDevices) { 31c36cf2e9Sopenharmony_ci return true; 32c36cf2e9Sopenharmony_ci } 33c36cf2e9Sopenharmony_ci } 34c36cf2e9Sopenharmony_ci return false; 35c36cf2e9Sopenharmony_ci } 36c36cf2e9Sopenharmony_ci 37c36cf2e9Sopenharmony_ci public static checkWifiActive(): boolean { 38c36cf2e9Sopenharmony_ci let wifiState: boolean = wifi.isWifiActive(); 39c36cf2e9Sopenharmony_ci return wifiState; 40c36cf2e9Sopenharmony_ci } 41c36cf2e9Sopenharmony_ci 42c36cf2e9Sopenharmony_ci private parsePrinterId(printerId: string) { 43c36cf2e9Sopenharmony_ci let split = printerId.split('//'); 44c36cf2e9Sopenharmony_ci return split[split.length - 1].replace(/-/g, ':'); 45c36cf2e9Sopenharmony_ci } 46c36cf2e9Sopenharmony_ci} 47c36cf2e9Sopenharmony_ci 48c36cf2e9Sopenharmony_cienum P2pConnectState { 49c36cf2e9Sopenharmony_ci DISCONNECTED = 0, 50c36cf2e9Sopenharmony_ci CONNECTED = 1, 51c36cf2e9Sopenharmony_ci UNKNOWN_ERROR = -1 52c36cf2e9Sopenharmony_ci}