From f37ce5ba2ea177fb4ccd71c4827b4ddec73ee5e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E9=94=90?= Date: Fri, 11 Apr 2025 15:32:42 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=B0=86=E8=93=9D=E7=89=99Opp=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E4=BB=8E7885/4.0.0=E5=90=8C=E6=AD=A5=E8=87=B3oh/maste?= =?UTF-8?q?r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OppTrans/BluetoothOpp/.gitignore | 9 + .../BluetoothOpp/@ohos.bluetooth.d.ts | 1781 ++++++ .../OppTrans/BluetoothOpp/AppScope/app.json5 | 11 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 6002 bytes .../OppTrans/BluetoothOpp/README_zh.md | 29 + .../OppTrans/BluetoothOpp/build-profile.json5 | 40 + .../OppTrans/BluetoothOpp/entry/.gitignore | 6 + .../BluetoothOpp/entry/build-profile.json5 | 14 + .../OppTrans/BluetoothOpp/entry/hvigorfile.ts | 2 + .../BluetoothOpp/entry/oh-package.json5 | 10 + .../BluetoothOpp/entry/package-lock.json | 5 + .../OppTrans/BluetoothOpp/entry/package.json | 14 + .../entry/src/main/ets/common/log.ts | 6 + .../src/main/ets/entryability/EntryAbility.ts | 42 + .../src/main/ets/pages/BleTest/BleTest.ets | 51 + .../entry/src/main/ets/pages/Index.ets | 38 + .../main/ets/pages/OppTest/OppClientTest.ets | 113 + .../main/ets/pages/OppTest/OppServerTest.ets | 123 + .../src/main/ets/pages/OppTest/OppTest.ets | 21 + .../main/ets/pages/ProfileTest/A2dpTest.ets | 68 + .../main/ets/pages/ProfileTest/HfpTest.ets | 17 + .../ets/pages/ProfileTest/ProfileTest.ets | 22 + .../main/ets/pages/SppTest/SppClientTest.ets | 79 + .../main/ets/pages/SppTest/SppServerTest.ets | 96 + .../src/main/ets/pages/SppTest/SppTest.ets | 22 + .../BluetoothOpp/entry/src/main/module.json5 | 59 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 20 + .../main/resources/base/media/app_icon.png | Bin 0 -> 6002 bytes .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/main_pages.json | 15 + .../main/resources/en_US/element/string.json | 20 + .../main/resources/rawfile/1MB_english.txt | 5110 +++++++++++++++++ .../entry/src/main/resources/rawfile/test.jpg | Bin 0 -> 286700 bytes .../main/resources/zh_CN/element/string.json | 20 + .../src/ohosTest/ets/test/Ability.test.ets | 35 + .../entry/src/ohosTest/ets/test/List.test.ets | 5 + .../ohosTest/ets/testability/TestAbility.ets | 48 + .../ohosTest/ets/testability/pages/Index.ets | 34 + .../ets/testrunner/OpenHarmonyTestRunner.ts | 49 + .../entry/src/ohosTest/module.json5 | 36 + .../resources/base/element/color.json | 8 + .../resources/base/element/string.json | 16 + .../ohosTest/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/test_pages.json | 5 + .../BluetoothOpp/hvigor/hvigor-config.json5 | 18 + .../BluetoothOpp/hvigor/hvigor-wrapper.js | 1 + .../OppTrans/BluetoothOpp/hvigorfile.ts | 2 + .../BluetoothOpp/oh-package-lock.json5 | 15 + .../OppTrans/BluetoothOpp/oh-package.json5 | 11 + .../BluetoothOpp/signature/bluetoothopp.cer | 29 + .../BluetoothOpp/signature/bluetoothopp.csr | 9 + .../BluetoothOpp/signature/bluetoothopp.p12 | Bin 0 -> 1128 bytes .../BluetoothOpp/signature/bluetoothopp.p7b | Bin 0 -> 3436 bytes .../ac/15289cf25ff14683bec511de83404197 | 1 + .../ce/74968108cf77439cb81ab093fafa433a | Bin 0 -> 48 bytes .../fd/0/5ab1f470e3f54dae851ceb943c486769 | 1 + .../fd/1/9c7bb337005f47079d87ae9373bca94d | 1 + .../fd/2/ea87333a7391483e9e84888a1b0854fb | 1 + 60 files changed, 8204 insertions(+) create mode 100644 code/Solutions/OppTrans/BluetoothOpp/.gitignore create mode 100644 code/Solutions/OppTrans/BluetoothOpp/@ohos.bluetooth.d.ts create mode 100644 code/Solutions/OppTrans/BluetoothOpp/AppScope/app.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/element/string.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/media/app_icon.png create mode 100644 code/Solutions/OppTrans/BluetoothOpp/README_zh.md create mode 100644 code/Solutions/OppTrans/BluetoothOpp/build-profile.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/.gitignore create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/build-profile.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/hvigorfile.ts create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/oh-package.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/package-lock.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/package.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/common/log.ts create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/entryability/EntryAbility.ts create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/BleTest/BleTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/Index.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppClientTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppServerTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/A2dpTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/HfpTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/ProfileTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppClientTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppServerTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/module.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/color.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/string.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/app_icon.png create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/icon.png create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/profile/main_pages.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/en_US/element/string.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/rawfile/1MB_english.txt create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/rawfile/test.jpg create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/zh_CN/element/string.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/TestAbility.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/pages/Index.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/module.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/color.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/string.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/media/icon.png create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/profile/test_pages.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/hvigor/hvigor-config.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/hvigor/hvigor-wrapper.js create mode 100644 code/Solutions/OppTrans/BluetoothOpp/hvigorfile.ts create mode 100644 code/Solutions/OppTrans/BluetoothOpp/oh-package-lock.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/oh-package.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.cer create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.csr create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p12 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p7b create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/ac/15289cf25ff14683bec511de83404197 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/ce/74968108cf77439cb81ab093fafa433a create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/0/5ab1f470e3f54dae851ceb943c486769 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/1/9c7bb337005f47079d87ae9373bca94d create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/2/ea87333a7391483e9e84888a1b0854fb diff --git a/code/Solutions/OppTrans/BluetoothOpp/.gitignore b/code/Solutions/OppTrans/BluetoothOpp/.gitignore new file mode 100644 index 0000000000..dc4e6353bf --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/.gitignore @@ -0,0 +1,9 @@ +/node_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/@ohos.bluetooth.d.ts b/code/Solutions/OppTrans/BluetoothOpp/@ohos.bluetooth.d.ts new file mode 100644 index 0000000000..86a848c9c4 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/@ohos.bluetooth.d.ts @@ -0,0 +1,1781 @@ +/* + * Copyright (C) 2021-2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AsyncCallback, Callback } from "./basic"; + +interface BluetoothOppFileHolder { + filePath?:string; + fileSize?:number; + fileFd?:number; +} +/** + * Provides methods to operate or manage Bluetooth. + * @since 7 + * @import import bluetooth from '@ohos.bluetooth' + * @syscap SystemCapability.Communication.Bluetooth.Core + */ +declare namespace bluetooth { + /** + * Obtains the Bluetooth status of a device. + * + * @return Returns the Bluetooth status, which can be {@link BluetoothState#STATE_OFF}, + * {@link BluetoothState#STATE_TURNING_ON}, {@link BluetoothState#STATE_ON}, {@link BluetoothState#STATE_TURNING_OFF}, + * {@link BluetoothState#STATE_BLE_TURNING_ON}, {@link BluetoothState#STATE_BLE_ON}, + * or {@link BluetoothState#STATE_BLE_TURNING_OFF}. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getState(): BluetoothState; + + /** + * Get the local device connection state to any profile of any remote device. + * + * @return One of {@link ProfileConnectionState#STATE_DISCONNECTED}, + * {@link ProfileConnectionState#STATE_CONNECTING}, {@link ProfileConnectionState#STATE_CONNECTED}, + * {@link ProfileConnectionState#STATE_DISCONNECTING}. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getBtConnectionState(): ProfileConnectionState; + + /** + * Starts pairing with a remote Bluetooth device. + * + * @param deviceId The address of the remote device to pair. + * @return Returns {@code true} if the pairing process is started; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function pairDevice(deviceId: string): boolean; + + /** + * Remove a paired remote device. + * + * @param deviceId The address of the remote device to be removed. + * @return Returns {@code true} if the cancel process is started; returns {@code false} otherwise. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + * @systemapi Hide this for inner system use + */ + function cancelPairedDevice(deviceId: string): boolean; + + /** + * Obtains the name of a peer Bluetooth device. + * + * @param deviceId The address of the remote device. + * @return Returns the device name in character string format. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getRemoteDeviceName(deviceId: string): string; + + /** + * Obtains the class of a peer Bluetooth device. + * + * @param deviceId The address of the remote device. + * @return The class of the remote device, {@link DeviceClass}. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getRemoteDeviceClass(deviceId: string): DeviceClass; + + /** + * Enables Bluetooth on a device. + * + * @return Returns {@code true} if Bluetooth is being enabled; returns {@code false} if an error occurs. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function enableBluetooth(): boolean; + + /** + * Disables Bluetooth on a device. + * + * @return Returns {@code true} if Bluetooth is being disabled; returns {@code false} if an error occurs. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function disableBluetooth(): boolean; + + /** + * Obtains the Bluetooth local name of a device. + * + * @return Returns the name the device. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getLocalName(): string; + + /** + * Obtains the list of Bluetooth devices that have been paired with the current device. + * + * @return Returns a list of paired Bluetooth devices's address. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getPairedDevices(): Array; + + /** + * Obtains the connection state of profile. + * + * @param profileId The profile id. + * @return Returns the connection state. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getProfileConnState(profileId: ProfileId): ProfileConnectionState; + + /** + * Sets the confirmation of pairing with a certain device. + * + * @param device The address of the remote device. + * @param accept Indicates whether to accept the pairing request, {@code true} indicates accept or {@code false} otherwise. + * @return Returns {@code true} if the pairing confirmation is set; returns {@code false} otherwise. + * @since 8 + * @permission ohos.permission.MANAGE_BLUETOOTH + */ + function setDevicePairingConfirmation(device: string, accept: boolean): boolean; + + /** + * Sets the Bluetooth friendly name of a device. + * + * @param name Indicates a valid Bluetooth name. + * @return Returns {@code true} if the Bluetooth name is set successfully; returns {@code false} otherwise. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function setLocalName(name: string): boolean; + + /** + * Sets the Bluetooth scan mode for a device. + * + * @param mode Indicates the Bluetooth scan mode to set, {@link ScanMode}. + * @param duration Indicates the duration in seconds, in which the host is discoverable. + * @return Returns {@code true} if the Bluetooth scan mode is set; returns {@code false} otherwise. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function setBluetoothScanMode(mode: ScanMode, duration: number): boolean; + + /** + * Obtains the Bluetooth scanning mode of a device. + * + * @return Returns the Bluetooth scanning mode, {@link ScanMode}. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getBluetoothScanMode(): ScanMode; + + /** + * Starts scanning Bluetooth devices. + * + * @return Returns {@code true} if the scan is started successfully; returns {@code false} otherwise. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH and ohos.permission.LOCATION + */ + function startBluetoothDiscovery(): boolean; + + /** + * Stops Bluetooth device scanning. + * + * @return Returns {@code true} if scanning is stopped successfully; returns {@code false} otherwise. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function stopBluetoothDiscovery(): boolean; + + /** + * Subscribe the event reported when a remote Bluetooth device is discovered. + * + * @param type Type of the discovering event to listen for. + * @param callback Callback used to listen for the discovering event. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function on(type: "bluetoothDeviceFind", callback: Callback>): void; + + /** + * Unsubscribe the event reported when a remote Bluetooth device is discovered. + * + * @param type Type of the discovering event to listen for. + * @param callback Callback used to listen for the discovering event. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function off(type: "bluetoothDeviceFind", callback?: Callback>): void; + + /** + * Subscribe the event reported when a remote Bluetooth device is bonded. + * + * @param type Type of the bond state event to listen for. + * @param callback Callback used to listen for the bond state event, {@link BondStateParam}. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function on(type: "bondStateChange", callback: Callback): void; + + /** + * Unsubscribe the event reported when a remote Bluetooth device is bonded. + * + * @param type Type of the bond state event to listen for. + * @param callback Callback used to listen for the bond state event. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function off(type: "bondStateChange", callback?: Callback): void; + + /** + * Subscribe the event of a pairing request from a remote Bluetooth device. + * + * @param type Type of the pairing request event to listen for. + * @param callback Callback used to listen for the pairing request event. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function on(type: "pinRequired", callback: Callback): void; + + /** + * Unsubscribe the event of a pairing request from a remote Bluetooth device. + * + * @param type Type of the pairing request event to listen for. + * @param callback Callback used to listen for the pairing request event. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function off(type: "pinRequired", callback?: Callback): void; + + /** + * Subscribe the event reported when the Bluetooth state changes. + * + * @param type Type of the Bluetooth state changes event to listen for. + * @param callback Callback used to listen for the Bluetooth state event. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function on(type: "stateChange", callback: Callback): void; + + /** + * Unsubscribe the event reported when the Bluetooth state changes. + * + * @param type Type of the Bluetooth state changes event to listen for. + * @param callback Callback used to listen for the Bluetooth state event. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function off(type: "stateChange", callback?: Callback): void; + + /** + * Creates a Bluetooth server listening socket. + * + * @param name Indicates the service name. + * @param option Indicates the listen parameters {@link SppOption}. + * @param callback Callback used to return a server socket ID. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function sppListen(name: string, option: SppOption, callback: AsyncCallback): void; + + /** + * Waits for a remote device to connect. + * + * @param serverSocket Indicates the server socket ID, returned by {@link sppListen}. + * @param callback Callback used to return a client socket ID. + * @since 8 + */ + function sppAccept(serverSocket: number, callback: AsyncCallback): void; + + /** + * Connects to a remote device over the socket. + * + * @param device The address of the remote device to connect. + * @param option Indicates the connect parameters {@link SppOption}. + * @param callback Callback used to return a client socket ID. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function sppConnect(device: string, option: SppOption, callback: AsyncCallback): void; + + /** + * Disables an spp server socket and releases related resources. + * + * @param socket Indicates the server socket ID, returned by {@link sppListen}. + * @since 8 + */ + function sppCloseServerSocket(socket: number): void; + + /** + * Disables an spp client socket and releases related resources. + * + * @param socket Indicates the client socket ID, returned by {@link sppAccept} or {@link sppConnect}. + * @since 8 + */ + function sppCloseClientSocket(socket: number): void; + + /** + * Write data through the socket. + * + * @param clientSocket Indicates the client socket ID, returned by {@link sppAccept} or {@link sppConnect}. + * @param data Indicates the data to write. + * @return Returns {@code true} if the data is write successfully; returns {@code false} otherwise. + * @since 8 + */ + function sppWrite(clientSocket: number, data: ArrayBuffer): boolean; + + /** + * Subscribe the event reported when data is read from the socket. + * + * @param type Type of the spp read event to listen for. + * @param callback Callback used to listen for the spp read event. + * @since 8 + */ + function on(type: "sppRead", clientSocket: number, callback: Callback): void; + + /** + * Unsubscribe the event reported when data is read from the socket. + * + * @param type Type of the spp read event to listen for. + * @param callback Callback used to listen for the spp read event. + * @since 8 + */ + function off(type: "sppRead", clientSocket: number, callback?: Callback): void; + + /** + * Obtains the instance of profile. + * + * @param profileId The profile id.. + * @return Returns instance of profile. + * @since 8 + */ + function getProfile(profileId: ProfileId): A2dpSourceProfile | A2dpSinkProfile | AvrcpProfile | HandsFreeAudioGatewayProfile | HandsFreeUnitProfile | HidHostProfile | PanProfile | PbapClientProfile |OppProfile | PbapServerProfile ; + + /** + * Obtains the instance of profile. + * + * @param profileId The profile id.. + * @return Returns instance of profile. + * @since 9 + */ + function getProfileInst(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile | PanProfile; + + /** + * Base interface of profile. + */ + interface BaseProfile { + /** + * Obtains the connected devices list of profile. + * + * @return Returns the address of connected devices list. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + getConnectionDevices(): Array; + + /** + * Obtains the profile state of device. + * + * @param device The address of bluetooth device. + * @return Returns {@link ProfileConnectionState} of device. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + getDeviceState(device: string): ProfileConnectionState; + } + + /** + * Manager a2dp source profile. + */ + interface A2dpSourceProfile extends BaseProfile { + /** + * Connect to device with a2dp. + * + * @param device The address of the remote device to connect. + * @return Returns {@code true} if the connect is in process; returns {@code false} otherwise. + * @since 8 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + */ + connect(device: string): boolean; + + /** + * Disconnect to device with a2dp. + * + * @param device The address of the remote device to disconnect. + * @return Returns {@code true} if the disconnect is in process; returns {@code false} otherwise. + * @since 8 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + */ + disconnect(device: string): boolean; + + /** + * Subscribe the event reported when the profile connection state changes . + * + * @param type Type of the profile connection state changes event to listen for . + * @param callback Callback used to listen for event. + * @since 8 + */ + on(type: "connectionStateChange", callback: Callback): void; + + /** + * Unsubscribe the event reported when the profile connection state changes . + * + * @param type Type of the profile connection state changes event to listen for . + * @param callback Callback used to listen for event. + * @since 8 + */ + off(type: "connectionStateChange", callback?: Callback): void; + + /** + * Obtains the playing state of device. + * + * @param device The address of the remote device. + * @return Returns {@link PlayingState} of the remote device. + * @since 8 + */ + getPlayingState(device: string): PlayingState; + } + + /** + * Manager handsfree AG profile. + */ + interface HandsFreeAudioGatewayProfile extends BaseProfile { + /** + * Connect to device with hfp. + * + * @param device The address of the remote device to connect. + * @return Returns {@code true} if the connect is in process; returns {@code false} otherwise. + * @since 8 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + */ + connect(device: string): boolean; + + /** + * Disconnect to device with hfp. + * + * @param device The address of the remote device to disconnect. + * @return Returns {@code true} if the disconnect is in process; returns {@code false} otherwise. + * @since 8 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + */ + disconnect(device: string): boolean; + + /** + * Subscribe the event reported when the profile connection state changes . + * + * @param type Type of the profile connection state changes event to listen for . + * @param callback Callback used to listen for event. + * @since 8 + */ + on(type: "connectionStateChange", callback: Callback): void; + + /** + * Unsubscribe the event reported when the profile connection state changes . + * + * @param type Type of the profile connection state changes event to listen for . + * @param callback Callback used to listen for event. + * @since 8 + */ + off(type: "connectionStateChange", callback?: Callback): void; + } + + /** + * Manager hid host profile. + */ + interface HidHostProfile extends BaseProfile { + /** + * Connect to device with hid host. + * + * @param device The address of the remote device to connect. + * @return Returns {@code true} if the connect is in process; returns {@code false} otherwise. + * @since 9 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + * @systemapi Hide this for inner system use. + */ + connect(device: string): boolean; + + /** + * Disconnect to device with hid host. + * + * @param device The address of the remote device to disconnect. + * @return Returns {@code true} if the disconnect is in process; returns {@code false} otherwise. + * @since 9 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + * @systemapi Hide this for inner system use. + */ + disconnect(device: string): boolean; + + /** + * Subscribe the event reported when the profile connection state changes . + * + * @param type Type of the profile connection state changes event to listen for . + * @param callback Callback used to listen for event. + * @since 9 + */ + on(type: "connectionStateChange", callback: Callback): void; + + /** + * Unsubscribe the event reported when the profile connection state changes. + * + * @param type Type of the profile connection state changes event to listen for. + * @param callback Callback used to listen for event. + * @since 9 + */ + off(type: "connectionStateChange", callback?: Callback): void; + } + + /** + * Manager pan profile. + */ + interface PanProfile extends BaseProfile { + /** + * Disconnect to device with pan. + * + * @param device The address of the remote device to disconnect. + * @return Returns {@code true} if the disconnect is in process; returns {@code false} otherwise. + * @since 9 + * @permission permission ohos.permission.USE_BLUETOOTH + * @systemapi Hide this for inner system use. + */ + disconnect(device: string): boolean; + + /** + * Subscribe the event reported when the profile connection state changes . + * + * @param type Type of the profile connection state changes event to listen for . + * @param callback Callback used to listen for event. + * @since 9 + */ + on(type: "connectionStateChange", callback: Callback): void; + + /** + * Unsubscribe the event reported when the profile connection state changes. + * + * @param type Type of the profile connection state changes event to listen for. + * @param callback Callback used to listen for event. + * @since 9 + */ + off(type: "connectionStateChange", callback?: Callback): void; + + /** + * Enable bluetooth tethering. + * + * @param enable Specifies whether to enable tethering. The value {@code true} indicates + * that tethering is enabled, and the value {@code false} indicates that tethering is disabled. + * @since 9 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + * @systemapi Hide this for inner system use. + */ + setTethering(enable: boolean): void; + + /** + * Obtains the tethering enable or disable. + * + * @return Returns the value {@code true} is tethering is on, returns {@code false} otherwise. + * @since 9 + * @systemapi Hide this for inner system use. + */ + isTetheringOn(): boolean; + } + + /** + * Manager AvrcpProfile profile. + */ + interface AvrcpProfile extends BaseProfile { + on(type: "connectionStateChange", callback: AsyncCallback): void; + off(type: "connectionStateChange", callback?: AsyncCallback): void; + } + + /** + * Manager HandsFreeUnitProfile profile. + */ + interface HandsFreeUnitProfile extends BaseProfile { + getScoState(device: string): number; + connect(device: string): boolean; + disconnect(device: string): boolean; + on(type: "connectionStateChange", callback: AsyncCallback): void; + off(type: "connectionStateChange", callback?: AsyncCallback): void; + connectSco(device: string): boolean; + disconnectSco(device: string): boolean; + on(type: "scoStateChange", callback: AsyncCallback): void; + off(type: "scoStateChange", callback?: AsyncCallback): void; + sendDTMF(device: string, digit: number): void; + } + + /** + * Manager PbapClientProfile profile. + */ + interface PbapClientProfile extends BaseProfile { + connect(device: string): boolean; + disconnect(device: string): boolean; + on(type: "connectionStateChange", callback: AsyncCallback): void; + off(type: "connectionStateChange", callback?: AsyncCallback): void; + } + + /** + * Manager PbapServerProfile profile. + */ + interface PbapServerProfile extends BaseProfile { + disconnect(device: string): boolean; + on(type: "connectionStateChange", callback: AsyncCallback): void; + off(type: "connectionStateChange", callback?: AsyncCallback): void; + } + + /** + * Manager OppProfile profile. + */ + interface OppProfile extends BaseProfile { + on(type: "transferStateChange", callback: Callback): void; + off(type: "transferStateChange"): void; + on(type: "receiveIncomingFile", callback: Callback): void; + off(type: "receiveIncomingFile"): void; + sendFile(device: string, filePaths: Array): boolean; + setIncomingFileConfirmation(accept: boolean, fileFd:number): boolean; + getCurrentTransferInformation(): BluetoothOppTransferInformation; + cancelTransfer(): boolean; + } + + /** + * Manager A2dpSinkProfile profile. + */ + interface A2dpSinkProfile extends BaseProfile { + connect(device: string): boolean; + disconnect(device: string): boolean; + getPlayingState(device: string): number; + on(type: "connectionStateChange", callback: AsyncCallback): void; + off(type: "connectionStateChange", callback?: AsyncCallback): void; + } + + + + namespace BLE { + /** + * create a JavaScript Gatt server instance. + * + * @return Returns a JavaScript Gatt server instance {@code GattServer}. + * @since 7 + */ + function createGattServer(): GattServer; + + /** + * create a JavaScript Gatt client device instance. + * + * @param deviceId The address of the remote device. + * @return Returns a JavaScript Gatt client device instance {@code GattClientDevice}. + * @since 7 + */ + function createGattClientDevice(deviceId: string): GattClientDevice; + + /** + * Obtains the list of devices in the connected status. + * + * @return Returns the list of device address. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getConnectedBLEDevices(): Array; + + /** + * Starts scanning for specified BLE devices with filters. + * + * @param filters Indicates the list of filters used to filter out specified devices. + * If you do not want to use filter, set this parameter to {@code null}. + * @param options Indicates the parameters for scanning and if the user does not assign a value, the default value will be used. + * {@link ScanOptions#interval} set to 0, {@link ScanOptions#dutyMode} set to {@link SCAN_MODE_LOW_POWER} + * and {@link ScanOptions#matchMode} set to {@link MATCH_MODE_AGGRESSIVE}. + * @since 7 + * @permission ohos.permission.DISCOVER_BLUETOOTH and ohos.permission.MANAGE_BLUETOOTH and ohos.permission.LOCATION + */ + function startBLEScan(filters: Array, options?: ScanOptions): void; + + /** + * Stops BLE scanning. + * + * @since 7 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function stopBLEScan(): void; + + /** + * Subscribe BLE scan result. + * + * @param type Type of the scan result event to listen for. + * @param callback Callback used to listen for the scan result event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + function on(type: "BLEDeviceFind", callback: Callback>): void; + + /** + * Unsubscribe BLE scan result. + * + * @param type Type of the scan result event to listen for. + * @param callback Callback used to listen for the scan result event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + function off(type: "BLEDeviceFind", callback?: Callback>): void; + } + + /** + * Manages GATT server. Before calling an Gatt server method, you must use {@link createGattServer} to create an GattServer instance. + */ + interface GattServer { + /** + * Starts BLE advertising. + * + * @param setting Indicates the settings for BLE advertising. + * If you need to use the default value, set this parameter to {@code null}. + * @param advData Indicates the advertising data. + * @param advResponse Indicates the scan response associated with the advertising data. + * @since 7 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + startAdvertising(setting: AdvertiseSetting, advData: AdvertiseData, advResponse?: AdvertiseData): void; + + /** + * Stops BLE advertising. + * + * @since 7 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + stopAdvertising(): void; + + /** + * Adds a specified service to be hosted. + * + *

The added service and its characteristics are provided by the local device. + * + * @param service Indicates the service to add. + * @return Returns {@code true} if the service is added; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + addService(service: GattService): boolean; + + /** + * Removes a specified service from the list of GATT services provided by this device. + * + * @param serviceUuid Indicates the UUID of the service to remove. + * @return Returns {@code true} if the service is removed; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + removeService(serviceUuid: string): boolean; + + /** + * Closes this {@code GattServer} object and unregisters its callbacks. + * + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + close(): void; + + /** + * Sends a notification of a change in a specified local characteristic. + * + *

This method should be called for every BLE peripheral device that has requested notifications. + * + * @param deviceId Indicates the address of the BLE peripheral device to receive the notification. + * @param notifyCharacteristic Indicates the local characteristic that has changed. + * @return Returns {@code true} if the notification is sent successfully; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + notifyCharacteristicChanged(deviceId: string, notifyCharacteristic: NotifyCharacteristic): boolean; + + /** + * Sends a response to a specified read or write request to a given BLE peripheral device. + * + * @param serverResponse Indicates the response parameters {@link ServerResponse}. + * @return Returns {@code true} if the response is sent successfully; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + sendResponse(serverResponse: ServerResponse): boolean; + + /** + * Subscribe characteristic read event. + * + * @param type Type of the characteristic read event to listen for. + * @param callback Callback used to listen for the characteristic read event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "characteristicRead", callback: Callback): void; + + /** + * Unsubscribe characteristic read event. + * + * @param type Type of the characteristic read event to listen for. + * @param callback Callback used to listen for the characteristic read event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "characteristicRead", callback?: Callback): void; + + /** + * Subscribe characteristic write event. + * + * @param type Type of the characteristic write event to listen for. + * @param callback Callback used to listen for the characteristic write event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "characteristicWrite", callback: Callback): void; + + /** + * Unsubscribe characteristic write event. + * + * @param type Type of the characteristic write event to listen for. + * @param callback Callback used to listen for the characteristic write event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "characteristicWrite", callback?: Callback): void; + + /** + * Subscribe descriptor read event. + * + * @param type Type of the descriptor read event to listen for. + * @param callback Callback used to listen for the descriptor read event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "descriptorRead", callback: Callback): void; + + /** + * Unsubscribe descriptor read event. + * + * @param type Type of the descriptor read event to listen for. + * @param callback Callback used to listen for the descriptor read event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "descriptorRead", callback?: Callback): void; + + /** + * Subscribe descriptor write event. + * + * @param type Type of the descriptor write event to listen for. + * @param callback Callback used to listen for the descriptor write event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "descriptorWrite", callback: Callback): void; + + /** + * Unsubscribe descriptor write event. + * + * @param type Type of the descriptor write event to listen for. + * @param callback Callback used to listen for the descriptor write event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "descriptorWrite", callback?: Callback): void; + + /** + * Subscribe server connection state changed event. + * + * @param type Type of the connection state changed event to listen for. + * @param callback Callback used to listen for the connection state changed event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "connectStateChange", callback: Callback): void; + + /** + * Unsubscribe server connection state changed event. + * + * @param type Type of the connection state changed event to listen for. + * @param callback Callback used to listen for the connection state changed event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "connectStateChange", callback?: Callback): void; + } + + /** + * Manages GATT client. Before calling an Gatt client method, you must use {@link createGattClientDevice} to create an GattClientDevice instance. + */ + interface GattClientDevice { + + /** + * Connects to a BLE peripheral device. + * + *

The 'BLEConnectionStateChange' event is subscribed to return the connection state. + * + * @return Returns {@code true} if the connection process starts; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + connect(): boolean; + + /** + * Disconnects from or stops an ongoing connection to a BLE peripheral device. + * + * @return Returns {@code true} if the disconnection process starts; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + disconnect(): boolean; + + /** + * Disables a BLE peripheral device. + * + *

This method unregisters the device and clears the registered callbacks and handles. + * + * @return Returns {@code true} if the the device is disabled; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + close(): boolean; + + /** + * Obtains the name of BLE peripheral device. + * + * @return Returns a string representation of the name if obtained; + * returns {@code null} if the name fails to be obtained or the name does not exist. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + getDeviceName(callback: AsyncCallback): void; + getDeviceName(): Promise; + + /** + * Starts discovering services. + * + * @return Returns the list of services {@link GattService} of the BLE peripheral device. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + getServices(callback: AsyncCallback>): void; + getServices(): Promise>; + + /** + * Reads the characteristic of a BLE peripheral device. + * + * @param characteristic Indicates the characteristic to read. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + readCharacteristicValue(characteristic: BLECharacteristic, callback: AsyncCallback): void; + readCharacteristicValue(characteristic: BLECharacteristic): Promise; + + /** + * Reads the descriptor of a BLE peripheral device. + * + * @param descriptor Indicates the descriptor to read. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + readDescriptorValue(descriptor: BLEDescriptor, callback: AsyncCallback): void; + readDescriptorValue(descriptor: BLEDescriptor): Promise; + + /** + * Writes the characteristic of a BLE peripheral device. + * + * @param characteristic Indicates the characteristic to write. + * @return Returns {@code true} if the characteristic is written successfully; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + writeCharacteristicValue(characteristic: BLECharacteristic): boolean; + + /** + * Writes the descriptor of a BLE peripheral device. + * + * @param descriptor Indicates the descriptor to write. + * @return Returns {@code true} if the descriptor is written successfully; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + writeDescriptorValue(descriptor: BLEDescriptor): boolean; + + /** + * Get the RSSI value of this BLE peripheral device. + * + * @return Returns the RSSI value. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + getRssiValue(callback: AsyncCallback): void; + getRssiValue(): Promise; + + /** + * Set the mtu size of a BLE peripheral device. + * + * @param mtu The maximum transmission unit. + * @return Returns {@code true} if the set mtu is successfully; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + setBLEMtuSize(mtu: number): boolean; + + /** + * Enables or disables notification of a characteristic when value changed. + * + * @param enable Specifies whether to enable notification of the characteristic. The value {@code true} indicates + * that notification is enabled, and the value {@code false} indicates that notification is disabled. + * @return Returns {@code true} if notification of the characteristic is enabled or disabled; + * returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + setNotifyCharacteristicChanged(characteristic: BLECharacteristic, enable: boolean): boolean; + + /** + * Subscribe characteristic value changed event. + * + * @param type Type of the characteristic value changed event to listen for. + * @param callback Callback used to listen for the characteristic value changed event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "BLECharacteristicChange", callback: Callback): void; + + /** + * Unsubscribe characteristic value changed event. + * + * @param type Type of the characteristic value changed event to listen for. + * @param callback Callback used to listen for the characteristic value changed event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "BLECharacteristicChange", callback?: Callback): void; + + /** + * Subscribe client connection state changed event. + * + * @param type Type of the connection state changed event to listen for. + * @param callback Callback used to listen for the connection state changed event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "BLEConnectionStateChange", callback: Callback): void; + + /** + * Unsubscribe client connection state changed event. + * + * @param type Type of the connection state changed event to listen for. + * @param callback Callback used to listen for the connection state changed event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "BLEConnectionStateChange", callback?: Callback): void; + } + + /** + * Describes the Gatt service. + * + * @devices phone, tablet + * @since 7 + */ + interface GattService { + /** The UUID of a GattService instance */ + serviceUuid: string; + /** Indicates whether the GattService instance is primary or secondary. */ + isPrimary: boolean; + /** The {@link BLECharacteristic} list belongs to this GattService instance */ + characteristics: Array; + /** The list of GATT services contained in the service */ + includeServices?: Array; + } + + /** + * Describes the Gatt characteristic. + * + * @devices phone, tablet + * @since 7 + */ + interface BLECharacteristic { + /** The UUID of the {@link GattService} instance to which the characteristic belongs */ + serviceUuid: string; + /** The UUID of a BLECharacteristic instance */ + characteristicUuid: string; + /** The value of a BLECharacteristic instance */ + characteristicValue: ArrayBuffer; + /** The list of {@link BLEDescriptor} contained in the characteristic */ + descriptors: Array; + } + + /** + * Describes the Gatt descriptor. + * + * @devices phone, tablet + * @since 7 + */ + interface BLEDescriptor { + /** The UUID of the {@link GattService} instance to which the descriptor belongs */ + serviceUuid: string; + /** The UUID of the {@link BLECharacteristic} instance to which the descriptor belongs */ + characteristicUuid: string; + /** The UUID of the BLEDescriptor instance */ + descriptorUuid: string; + /** The value of the BLEDescriptor instance */ + descriptorValue: ArrayBuffer; + } + + /** + * Describes the value of the indication or notification sent by the Gatt server. + * + * @devices phone, tablet + * @since 7 + */ + interface NotifyCharacteristic { + /** The UUID of the {@link GattService} instance to which the characteristic belongs */ + serviceUuid: string; + /** The UUID of a NotifyCharacteristic instance */ + characteristicUuid: string; + /** The value of a NotifyCharacteristic instance */ + characteristicValue: ArrayBuffer; + /** + * Specifies whether to request confirmation from the BLE peripheral device (indication) or + * send a notification. Value {@code true} indicates the former and {@code false} indicates the latter. + */ + confirm: boolean; + } + + /** + * Describes the parameters of the Gatt client's characteristic read request. + * + * @devices phone, tablet + * @since 7 + */ + interface CharacteristicReadReq { + /** Indicates the address of the client that initiates the read request */ + deviceId: string; + /** The Id of the read request */ + transId: number; + /** Indicates the byte offset of the start position for reading characteristic value */ + offset: number; + /** The UUID of a CharacteristicReadReq instance */ + characteristicUuid: string; + /** The UUID of the service to which the characteristic belongs */ + serviceUuid: string; + } + + /** + * Describes the parameters of the of the Gatt client's characteristic write request. + * + * @devices phone, tablet + * @since 7 + */ + interface CharacteristicWriteReq { + /** Indicates the address of the client that initiates the write request */ + deviceId: string; + /** The Id of the write request */ + transId: number; + /** Indicates the byte offset of the start position for writing characteristic value */ + offset: number; + /** Whether this request should be pending for later operation */ + isPrep: boolean; + /** Whether the remote client need a response */ + needRsp: boolean; + /** Indicates the value to be written */ + value: ArrayBuffer; + /** The UUID of a CharacteristicWriteReq instance */ + characteristicUuid: string; + /** The UUID of the service to which the characteristic belongs */ + serviceUuid: string; + } + + /** + * Describes the parameters of the Gatt client's descriptor read request. + * + * @devices phone, tablet + * @since 7 + */ + interface DescriptorReadReq { + /** Indicates the address of the client that initiates the read request */ + deviceId: string; + /** The Id of the read request */ + transId: number; + /** Indicates the byte offset of the start position for reading characteristic value */ + offset: number; + /** The UUID of a DescriptorReadReq instance */ + descriptorUuid: string; + /** The UUID of the characteristic to which the descriptor belongs */ + characteristicUuid: string; + /** The UUID of the service to which the descriptor belongs */ + serviceUuid: string; + } + + /** + * Describes the parameters of the Gatt client's characteristic write request. + * + * @devices phone, tablet + * @since 7 + */ + interface DescriptorWriteReq { + /** Indicates the address of the client that initiates the write request */ + deviceId: string; + /** The Id of the write request */ + transId: number; + /** Indicates the byte offset of the start position for writing characteristic value */ + offset: number; + /** Whether this request should be pending for later operation */ + isPrep: boolean; + /** Whether the remote client need a response */ + needRsp: boolean; + /** Indicates the value to be written */ + value: ArrayBuffer; + /** The UUID of a DescriptorWriteReq instance */ + descriptorUuid: string; + /** The UUID of the characteristic to which the descriptor belongs */ + characteristicUuid: string; + /** The UUID of the service to which the descriptor belongs */ + serviceUuid: string; + } + + /** + * Describes the parameters of a response send by the server to a specified read or write request. + * + * @devices phone, tablet + * @since 7 + */ + interface ServerResponse { + /** Indicates the address of the client to which to send the response */ + deviceId: string; + /** The Id of the write request */ + transId: number; + /** Indicates the status of the read or write request, set this parameter to '0' in normal cases */ + status: number; + /** Indicates the byte offset of the start position for reading or writing operation */ + offset: number; + /** Indicates the value to be sent */ + value: ArrayBuffer; + } + + /** + * Describes the Gatt profile connection state. + * + * @devices phone, tablet + * @since 7 + */ + interface BLEConnectChangedState { + /** Indicates the peer device address */ + deviceId: string; + /** Connection state of the Gatt profile */ + state: ProfileConnectionState; + } + + /** + * Describes the contents of the scan results. + * + * @devices phone, tablet + * @since 7 + */ + interface ScanResult { + /** Address of the scanned device */ + deviceId: string; + /** RSSI of the remote device */ + rssi: number; + /** The raw data of broadcast packet */ + data: ArrayBuffer; + } + + /** + * Describes the settings for BLE advertising. + * + * @devices phone, tablet + * @since 7 + */ + interface AdvertiseSetting { + /** + * Minimum slot value for the advertising interval, which is {@code 32} (20 ms) + * Maximum slot value for the advertising interval, which is {@code 16777215} (10485.759375s) + * Default slot value for the advertising interval, which is {@code 1600} (1s) + */ + interval?: number; + /** + * Minimum transmission power level for advertising, which is {@code -127} + * Maximum transmission power level for advertising, which is {@code 1} + * Default transmission power level for advertising, which is {@code -7} + */ + txPower?: number; + /** Indicates whether the BLE is connectable, default is {@code true} */ + connectable?: boolean; + } + + /** + * Describes the advertising data. + * + * @devices phone, tablet + * @since 7 + */ + interface AdvertiseData { + /** The specified service UUID list to this advertisement */ + serviceUuids: Array; + /** The specified manufacturer data list to this advertisement */ + manufactureData: Array; + /** The specified service data list to this advertisement */ + serviceData: Array; + } + + /** + * Describes the manufacturer data. + * + * @devices phone, tablet + * @since 7 + */ + interface ManufactureData { + /** Indicates the manufacturer ID assigned by Bluetooth SIG */ + manufactureId: number; + /** Indicates the manufacturer data to add */ + manufactureValue: ArrayBuffer; + } + + /** + * Describes the service data. + * + * @devices phone, tablet + * @since 7 + */ + interface ServiceData { + /** Indicates the UUID of the service data to add */ + serviceUuid: string; + /** Indicates the service data to add */ + serviceValue: ArrayBuffer; + } + + /** + * Describes the criteria for filtering scanning results can be set. + * + * @devices phone, tablet + * @since 7 + */ + interface ScanFilter { + /** + * The address of a BLE peripheral device + * @since 7 + */ + deviceId?: string; + + /** + * The name of a BLE peripheral device + * @since 7 + */ + name?: string; + + /** + * The service UUID of a BLE peripheral device + * @since 7 + */ + serviceUuid?: string; + + /** + * Service UUID mask. + * @since 9 + */ + serviceUuidMask?: string; + + /** + * Service solicitation UUID mask. + * @since 9 + */ + serviceSolicitationUuid?: string; + + /** + * Service solicitation UUID mask. + * @since 9 + */ + serviceSolicitationUuidMask?: string; + + /** + * Service data. + * @since 9 + */ + serviceData?: ArrayBuffer; + + /** + * Service data mask. + * @since 9 + */ + serviceDataMask?: ArrayBuffer; + + /** + * Manufacture id. + * @since 9 + */ + manufactureId?: number; + + /** + * Manufacture data. + * @since 9 + */ + manufactureData?: ArrayBuffer; + + /** + * Manufacture data mask. + * @since 9 + */ + manufactureDataMask?: ArrayBuffer; + } + + /** + * Describes the parameters for scan. + * + * @devices phone, tablet + * @since 7 + */ + interface ScanOptions { + /** Time of delay for reporting the scan result */ + interval?: number; + /** Bluetooth LE scan mode */ + dutyMode?: ScanDuty; + /** Match mode for Bluetooth LE scan filters hardware match */ + matchMode?: MatchMode; + } + + /** + * Describes the spp parameters. + * + * @devices phone, tablet + * @since 7 + */ + interface SppOption { + /** Indicates the UUID in the SDP record. */ + uuid: string; + /** Indicates secure channel or not */ + secure: boolean; + /** Spp link type {@link SppType}*/ + type: SppType; + } + /** + * Describes the bond key param. + * + * @since 8 + */ + interface PinRequiredParam { + deviceId: string; + pinCode: string; + } + + /** +* Describes the class of a bluetooth device. +* +* @since 8 +*/ + interface DeviceClass { + majorClass: MajorClass; + majorMinorClass: MajorMinorClass; + classOfDevice: number; + } + + /** + * Describes the class of a bluetooth device. + * + * @since 8 + */ + interface BondStateParam { + deviceId: string; + state: BondState; + } + + + + /** + * Describes the opp BluetoothOppTransferInformation. + * + * @devices phone, tablet + * @since 9 + */ + interface BluetoothOppTransferInformation { + id: number; + fileName: string; + filePath: string; + mimeType: string; + deviceName: string; + deviceAddress: string; + direction: number; + status: number; + failedReason: number; + timeStamp: number; + currentBytes: number; + totalBytes: number; + } + + enum ScanDuty { + /** low power mode */ + SCAN_MODE_LOW_POWER = 0, + /** balanced power mode */ + SCAN_MODE_BALANCED = 1, + /** Scan using highest duty cycle */ + SCAN_MODE_LOW_LATENCY = 2 + } + + enum MatchMode { + /** aggressive mode */ + MATCH_MODE_AGGRESSIVE = 1, + /** sticky mode */ + MATCH_MODE_STICKY = 2 + } + + enum ProfileConnectionState { + /** the current profile is disconnected */ + STATE_DISCONNECTED = 0, + /** the current profile is being connected */ + STATE_CONNECTING = 1, + /** the current profile is connected */ + STATE_CONNECTED = 2, + /** the current profile is being disconnected */ + STATE_DISCONNECTING = 3 + } + + enum BluetoothState { + /** Indicates the local Bluetooth is off */ + STATE_OFF = 0, + /** Indicates the local Bluetooth is turning on */ + STATE_TURNING_ON = 1, + /** Indicates the local Bluetooth is on, and ready for use */ + STATE_ON = 2, + /** Indicates the local Bluetooth is turning off */ + STATE_TURNING_OFF = 3, + /** Indicates the local Bluetooth is turning LE mode on */ + STATE_BLE_TURNING_ON = 4, + /** Indicates the local Bluetooth is in LE only mode */ + STATE_BLE_ON = 5, + /** Indicates the local Bluetooth is turning off LE only mode */ + STATE_BLE_TURNING_OFF = 6 + } + + /** + * The enum of SPP type. + * + * @since 8 + */ + enum SppType { + /** RFCOMM */ + SPP_RFCOMM + } + + /** + * The enum of BR scan mode. + * + * @since 8 + */ + enum ScanMode { + /** Indicates the scan mode is none */ + SCAN_MODE_NONE = 0, + /** Indicates the scan mode is connectable */ + SCAN_MODE_CONNECTABLE = 1, + /** Indicates the scan mode is general discoverable */ + SCAN_MODE_GENERAL_DISCOVERABLE = 2, + /** Indicates the scan mode is limited discoverable */ + SCAN_MODE_LIMITED_DISCOVERABLE = 3, + /** Indicates the scan mode is connectable and general discoverable */ + SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE = 4, + /** Indicates the scan mode is connectable and limited discoverable */ + SCAN_MODE_CONNECTABLE_LIMITED_DISCOVERABLE = 5 + } + + /** + * The enum of bond state. + * + * @since 8 + */ + enum BondState { + /** Indicate the bond state is invalid */ + BOND_STATE_INVALID = 0, + /** Indicate the bond state is bonding */ + BOND_STATE_BONDING = 1, + /** Indicate the bond state is bonded*/ + BOND_STATE_BONDED = 2 + } + + /** + * The enum of major class of a bluetooth device. + * + * @since 8 + */ + enum MajorClass { + MAJOR_MISC = 0x0000, + MAJOR_COMPUTER = 0x0100, + MAJOR_PHONE = 0x0200, + MAJOR_NETWORKING = 0x0300, + MAJOR_AUDIO_VIDEO = 0x0400, + MAJOR_PERIPHERAL = 0x0500, + MAJOR_IMAGING = 0x0600, + MAJOR_WEARABLE = 0x0700, + MAJOR_TOY = 0x0800, + MAJOR_HEALTH = 0x0900, + MAJOR_UNCATEGORIZED = 0x1F00 + } + + /** + * The enum of major minor class of a bluetooth device. + * + * @since 8 + */ + enum MajorMinorClass { + // The Minor Device Class field + // Computer Major Class + COMPUTER_UNCATEGORIZED = 0x0100, + COMPUTER_DESKTOP = 0x0104, + COMPUTER_SERVER = 0x0108, + COMPUTER_LAPTOP = 0x010C, + COMPUTER_HANDHELD_PC_PDA = 0x0110, + COMPUTER_PALM_SIZE_PC_PDA = 0x0114, + COMPUTER_WEARABLE = 0x0118, + COMPUTER_TABLET = 0x011C, + + // Phone Major Class + PHONE_UNCATEGORIZED = 0x0200, + PHONE_CELLULAR = 0x0204, + PHONE_CORDLESS = 0x0208, + PHONE_SMART = 0x020C, + PHONE_MODEM_OR_GATEWAY = 0x0210, + PHONE_ISDN = 0x0214, + + // LAN/Network Access Point Major Class + NETWORK_FULLY_AVAILABLE = 0x0300, + NETWORK_1_TO_17_UTILIZED = 0x0320, + NETWORK_17_TO_33_UTILIZED = 0x0340, + NETWORK_33_TO_50_UTILIZED = 0x0360, + NETWORK_60_TO_67_UTILIZED = 0x0380, + NETWORK_67_TO_83_UTILIZED = 0x03A0, + NETWORK_83_TO_99_UTILIZED = 0x03C0, + NETWORK_NO_SERVICE = 0x03E0, + + // Audio/Video Major Class + AUDIO_VIDEO_UNCATEGORIZED = 0x0400, + AUDIO_VIDEO_WEARABLE_HEADSET = 0x0404, + AUDIO_VIDEO_HANDSFREE = 0x0408, + AUDIO_VIDEO_MICROPHONE = 0x0410, + AUDIO_VIDEO_LOUDSPEAKER = 0x0414, + AUDIO_VIDEO_HEADPHONES = 0x0418, + AUDIO_VIDEO_PORTABLE_AUDIO = 0x041C, + AUDIO_VIDEO_CAR_AUDIO = 0x0420, + AUDIO_VIDEO_SET_TOP_BOX = 0x0424, + AUDIO_VIDEO_HIFI_AUDIO = 0x0428, + AUDIO_VIDEO_VCR = 0x042C, + AUDIO_VIDEO_VIDEO_CAMERA = 0x0430, + AUDIO_VIDEO_CAMCORDER = 0x0434, + AUDIO_VIDEO_VIDEO_MONITOR = 0x0438, + AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER = 0x043C, + AUDIO_VIDEO_VIDEO_CONFERENCING = 0x0440, + AUDIO_VIDEO_VIDEO_GAMING_TOY = 0x0448, + + // Peripheral Major Class + PERIPHERAL_NON_KEYBOARD_NON_POINTING = 0x0500, + PERIPHERAL_KEYBOARD = 0x0540, + PERIPHERAL_POINTING_DEVICE = 0x0580, + PERIPHERAL_KEYBOARD_POINTING = 0x05C0, + PERIPHERAL_UNCATEGORIZED = 0x0500, + PERIPHERAL_JOYSTICK = 0x0504, + PERIPHERAL_GAMEPAD = 0x0508, + PERIPHERAL_REMOTE_CONTROL = 0x05C0, + PERIPHERAL_SENSING_DEVICE = 0x0510, + PERIPHERAL_DIGITIZER_TABLET = 0x0514, + PERIPHERAL_CARD_READER = 0x0518, + PERIPHERAL_DIGITAL_PEN = 0x051C, + PERIPHERAL_SCANNER_RFID = 0x0520, + PERIPHERAL_GESTURAL_INPUT = 0x0522, + + // Imaging Major Class + IMAGING_UNCATEGORIZED = 0x0600, + IMAGING_DISPLAY = 0x0610, + IMAGING_CAMERA = 0x0620, + IMAGING_SCANNER = 0x0640, + IMAGING_PRINTER = 0x0680, + + // Wearable Major Class + WEARABLE_UNCATEGORIZED = 0x0700, + WEARABLE_WRIST_WATCH = 0x0704, + WEARABLE_PAGER = 0x0708, + WEARABLE_JACKET = 0x070C, + WEARABLE_HELMET = 0x0710, + WEARABLE_GLASSES = 0x0714, + + // Minor Device Class field - Toy Major Class + TOY_UNCATEGORIZED = 0x0800, + TOY_ROBOT = 0x0804, + TOY_VEHICLE = 0x0808, + TOY_DOLL_ACTION_FIGURE = 0x080C, + TOY_CONTROLLER = 0x0810, + TOY_GAME = 0x0814, + + // Minor Device Class field - Health + HEALTH_UNCATEGORIZED = 0x0900, + HEALTH_BLOOD_PRESSURE = 0x0904, + HEALTH_THERMOMETER = 0x0908, + HEALTH_WEIGHING = 0x090C, + HEALTH_GLUCOSE = 0x0910, + HEALTH_PULSE_OXIMETER = 0x0914, + HEALTH_PULSE_RATE = 0x0918, + HEALTH_DATA_DISPLAY = 0x091C, + HEALTH_STEP_COUNTER = 0x0920, + HEALTH_BODY_COMPOSITION_ANALYZER = 0x0924, + HEALTH_PEAK_FLOW_MOITOR = 0x0928, + HEALTH_MEDICATION_MONITOR = 0x092C, + HEALTH_KNEE_PROSTHESIS = 0x0930, + HEALTH_ANKLE_PROSTHESIS = 0x0934, + HEALTH_GENERIC_HEALTH_MANAGER = 0x0938, + HEALTH_PERSONAL_MOBILITY_DEVICE = 0x093C, + } + + /** + * Profile state change parameters. + * + * @since 8 + */ + interface StateChangeParam { + /** The address of device */ + deviceId: string; + + /** Profile state value */ + state: ProfileConnectionState; + } + + /** + * The enum of a2dp playing state. + * + * @since 8 + */ + enum PlayingState { + STATE_NOT_PLAYING, + STATE_PLAYING, + } + + /** + * The enum of profile id. + */ + enum ProfileId { + /** + * @since 8 + */ + PROFILE_A2DP_SOURCE = 1, + + /** + * @since 8 + */ + PROFILE_HANDS_FREE_AUDIO_GATEWAY = 4, + + /** + * @since 9 + */ + PROFILE_HID_HOST = 6, + + /** + * @since 9 + */ + PROFILE_PAN_NETWORK = 7, + + /** + * @since 9 + */ + PROFILE_OPP = 10, + } +} + +export default bluetooth; diff --git a/code/Solutions/OppTrans/BluetoothOpp/AppScope/app.json5 b/code/Solutions/OppTrans/BluetoothOpp/AppScope/app.json5 new file mode 100644 index 0000000000..7f40701ae9 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/AppScope/app.json5 @@ -0,0 +1,11 @@ +{ + "app": { + "bundleName": "com.example.bluetoothopp", + "vendor": "example", + "versionCode": 1000001, + "versionName": "1.0.1", + "icon": "$media:app_icon", + "label": "$string:app_name", + "distributedNotificationEnabled": true + } +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/element/string.json b/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/element/string.json new file mode 100644 index 0000000000..63474f9804 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "蓝牙文件传输" + } + ] +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/media/app_icon.png b/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..380e486977b2d0259fcb3aed0f54a5e0a98ed528 GIT binary patch literal 6002 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 literal 0 HcmV?d00001 diff --git a/code/Solutions/OppTrans/BluetoothOpp/README_zh.md b/code/Solutions/OppTrans/BluetoothOpp/README_zh.md new file mode 100644 index 0000000000..bb712cdfb2 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/README_zh.md @@ -0,0 +1,29 @@ +### 介绍 + +本示例提供了蓝牙Opp文件传输功能,可实现不同设备通间蓝牙传输文件。 + +### 使用说明 + +1. 在opp接受服务端,点击"Opp接收服务端"按钮进入接收服务页面,点击"opp开启接收文件"按钮开始监听文件传输。 +2. 在opp发送服务端,点击已配对设备列表中设备名称(此时选中的设备背景色由黄色变成绿色),在第二个输入框中输入需要传输的文件名称。 +3. 在opp发送服务端,点击"oppSendFile"按钮传输文件。 +4. 在opp接收服务端,等待接收文件弹框弹出,点击"接收"按钮,开始接收文件。 + +注:
**1、两设备需处于已配对状态;
+2、opp发送端文件必须在"/data/bluetooth/log"目录下;
+3、opp接收端接收的文件在"/data/service/el1/public/bluetooth/"目录下** + + +### 相关权限 + +不涉及。 + +### 约束与限制 + +1. **需要将工程下"@ohos.bluetooth.d.ts"声明文件复制到SKD中"DevEco3.1.0.500_3.2.12.2\9\ets\api"目录下,替换原来的"@ohos.bluetooth.d.ts"声明文件** + +2. 本示例支持标准系统上运行,支持设备:7885; + +3. 本示例仅支持API9版本SDK,版本号:3.2.12.2; + +4. 本示例需要使用DevEco Studio 3.1 Canary1 (Build Version: 3.1.0.100)才可编译运行; \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/build-profile.json5 b/code/Solutions/OppTrans/BluetoothOpp/build-profile.json5 new file mode 100644 index 0000000000..0450fa3395 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/build-profile.json5 @@ -0,0 +1,40 @@ +{ + "app": { + "signingConfigs": [ + { + "name": "default", + "material": { + "certpath": "signature/bluetoothopp.cer", + "storePassword": "0000001BFA170ECDD2893BC2E4C652C7CC52A7D32971AAB3D0CFBC49DB913351B490D5EA1DAFCB759F507B", + "keyAlias": "debugKey", + "keyPassword": "0000001B90B4FD781921F33DB014FD33627C8209A428627667563728085601D62CAFD8B6EEB538D6FE6ADE", + "profile": "signature/bluetoothopp.p7b", + "signAlg": "SHA256withECDSA", + "storeFile": "signature/bluetoothopp.p12" + } + } + ], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compileSdkVersion": 10, + "compatibleSdkVersion": 9 + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/.gitignore b/code/Solutions/OppTrans/BluetoothOpp/entry/.gitignore new file mode 100644 index 0000000000..e2713a2779 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/build-profile.json5 b/code/Solutions/OppTrans/BluetoothOpp/entry/build-profile.json5 new file mode 100644 index 0000000000..2c53bb59be --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/build-profile.json5 @@ -0,0 +1,14 @@ +{ + "apiType": 'stageMode', + "buildOption": { + }, + "targets": [ + { + "name": "default", + "runtimeOS": "OpenHarmony" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/hvigorfile.ts b/code/Solutions/OppTrans/BluetoothOpp/entry/hvigorfile.ts new file mode 100644 index 0000000000..80e4ec5b81 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/hvigorfile.ts @@ -0,0 +1,2 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { hapTasks } from '@ohos/hvigor-ohos-plugin'; diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/oh-package.json5 b/code/Solutions/OppTrans/BluetoothOpp/entry/oh-package.json5 new file mode 100644 index 0000000000..225946cb11 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/oh-package.json5 @@ -0,0 +1,10 @@ +{ + "license": "", + "devDependencies": {}, + "author": "", + "name": "entry", + "description": "Please describe the basic information.", + "main": "", + "version": "1.0.0", + "dependencies": {} +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/package-lock.json b/code/Solutions/OppTrans/BluetoothOpp/entry/package-lock.json new file mode 100644 index 0000000000..15bc7145be --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/package-lock.json @@ -0,0 +1,5 @@ +{ + "name": "entry", + "version": "1.0.0", + "lockfileVersion": 1 +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/package.json b/code/Solutions/OppTrans/BluetoothOpp/entry/package.json new file mode 100644 index 0000000000..c7685ac4e7 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/package.json @@ -0,0 +1,14 @@ +{ + "license": "ISC", + "devDependencies": {}, + "name": "entry", + "ohos": { + "org": "huawei", + "directoryLevel": "module", + "buildTool": "hvigor" + }, + "description": "example description", + "repository": {}, + "version": "1.0.0", + "dependencies": {} +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/common/log.ts b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/common/log.ts new file mode 100644 index 0000000000..64bf48a9fb --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/common/log.ts @@ -0,0 +1,6 @@ +import promptAction from '@ohos.promptAction'; + +export function testLog(logStr: string) { + promptAction.showToast({ message: logStr }) + console.log(logStr) +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/entryability/EntryAbility.ts b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/entryability/EntryAbility.ts new file mode 100644 index 0000000000..b471280e6d --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/entryability/EntryAbility.ts @@ -0,0 +1,42 @@ +import UIAbility from '@ohos.app.ability.UIAbility'; +import hilog from '@ohos.hilog'; +import window from '@ohos.window'; + +export default class EntryAbility extends UIAbility { + onCreate(want, launchParam) { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + globalThis.context = this.context; + } + + onDestroy() { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage) { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err, data) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); + }); + } + + onWindowStageDestroy() { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground() { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground() { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/BleTest/BleTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/BleTest/BleTest.ets new file mode 100644 index 0000000000..7299a5e1c3 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/BleTest/BleTest.ets @@ -0,0 +1,51 @@ +import promptAction from '@ohos.promptAction'; +import bluetoothManager from '@ohos.bluetoothManager'; + +function string2ArrayBuffer(str) { + let array = new Uint8Array(str.length); + for (var i = 0; i < str.length; i++) { + array[i] = str.charCodeAt(i); + } + return array.buffer +} + +@Entry +@Component +struct BleTest { + build() { + Row() { + Column() { + Button('BleScan').fontSize(20).onClick(() => { + let scanFilter: bluetoothManager.ScanFilter = { + "deviceId": "11:22:33:44:55:66", + "name": "OHOS", + "serviceUuid": "00001234-0000-1000-8000-00805F9B34FB", + "serviceUuidMask": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF", + "serviceSolicitationUuid": "00001234-0000-1000-8000-00805F9B34FB", + "serviceSolicitationUuidMask": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF", + "serviceData": string2ArrayBuffer("01234FFFFFF-FFFFF-FFFFF"), + "serviceDataMask": string2ArrayBuffer("01234FFFFFF-FFFFF-FFFFF"), + "manufactureId": 12345, + "manufactureData": string2ArrayBuffer("01234jjjjjjjj-jjjjjj"), + "manufactureDataMask": string2ArrayBuffer("01234jjjjjjjj-jjjjjj"), + } + let scanOption: bluetoothManager.ScanOptions = { + interval: 500, + dutyMode: bluetoothManager.ScanDuty.SCAN_MODE_LOW_POWER, + matchMode: bluetoothManager.MatchMode.MATCH_MODE_AGGRESSIVE + } + let curScanFilters = []; + curScanFilters.push(scanFilter); + try { + bluetoothManager.BLE.startBLEScan(curScanFilters, scanOption); + } catch (err) { + console.log("error " + err.code + ", errorMessage " + err.message) + } + promptAction.showToast({ message: "执行成功 " }) + }).margin(5).width('100%') + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/Index.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/Index.ets new file mode 100644 index 0000000000..97236b46b3 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,38 @@ +import router from '@ohos.router'; +import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; + +@Entry +@Component +struct Index { + + aboutToAppear(){ + let abilityMgr = abilityAccessCtrl.createAtManager(); + abilityMgr.requestPermissionsFromUser(globalThis.context, ["ohos.permission.LOCATION", "ohos.permission.APPROXIMATELY_LOCATION",'ohos.permission.ACCESS_BLUETOOTH'], (error, result) => { + console.log("bluetooth requestPermissionsFromUser, err: "+JSON.stringify(error)+" ; result: "+JSON.stringify(result)) + }) + } + + build() { + Row() { + Column() { +// Button('Spp命令传输测试').fontSize(40).onClick(() => { +// router.push({ url: 'pages/SppTest/SppTest' }) +// }).margin(10) + + Button('Opp文件传输').fontSize(40).onClick(() => { + router.push({ url: 'pages/OppTest/OppTest' }) + }).margin(10) + +// Button('BleTest').fontSize(40).onClick(() => { +// router.push({ url: 'pages/BleTest/BleTest' }) +// }).margin(10) +// +// Button('ProfileTest').fontSize(40).onClick(() => { +// router.push({ url: 'pages/ProfileTest/ProfileTest' }) +// }).margin(10) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppClientTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppClientTest.ets new file mode 100644 index 0000000000..e580396c01 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppClientTest.ets @@ -0,0 +1,113 @@ +import bluetooth from '@ohos.bluetooth'; +import { testLog } from '../../common/log' + +@Entry +@Component +struct Client { + private oppProfile: bluetooth.OppProfile = undefined; + private pairDevices: {id: string, name: string}[] = []; + @State serverMac: string = ""; + private fileName: string = ""; + private fileType: string = "jpg" + + aboutToAppear(){ + try{ + // @ts-ignore + this.oppProfile = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_OPP); + testLog("get opp profile success"); + }catch (error){ + testLog("get opp profile fail, err: "+JSON.stringify(error)); + } + this.getPairDevice(); + } + + getPairDevice(){ + let macs = bluetooth.getPairedDevices(); + console.log("getPairDevice macs: "+JSON.stringify(macs)); + for (let i = 0; i < macs.length; i++) { + let name = bluetooth.getRemoteDeviceName(macs[i]); + console.log("getPairDevice name: "+JSON.stringify(name)); + this.pairDevices.push({ id: macs[i], name: name }); + } + console.log("getPairDevice pairDevices: "+JSON.stringify(this.pairDevices)); + } + + build() { + Row() { + Column({space: 20}) { + + Column(){ + Text("已配对设备列表:(点击选择设备)") + .fontSize(20) + .fontWeight(FontWeight.Bold) + + Scroll(){ + List({space: 5}){ + ForEach(this.pairDevices, (item: {id: string, name: string}) => { + ListItem(){ + Text(item.name) + .fontSize(25) + .width("80%") + .margin({left: '10%'}) + .backgroundColor(this.serverMac === item.id ? "#00FF00" : "#FFFF00") + .border({ + radius: 5 + }) + } + .onClick(() => { + this.serverMac = item.id; + }) + }) + } + } + .height("30%") + .width("80%") + } + + Column(){ + Text("已选择的设备的蓝牙mac地址:").fontSize(17).fontWeight(FontWeight.Bold) + Text(this.serverMac) + .fontSize("25") + .width("70%") + .borderRadius(5) + .backgroundColor(Color.Grey) + } + + Column(){ + Text("请输入需要发送的文件名称,如:test.txt").fontSize(13).fontWeight(FontWeight.Bold) + Text("注:文件必须在/data/bluetooth/log/目录下").fontSize(13).fontWeight(FontWeight.Bold) + TextInput({ placeholder: "文件名称" }) + .fontSize("17vp") + .onChange((str) => { + if(str){ + let strs = str.split("."); + this.fileName = str; + this.fileType = strs[1]; + } + }).width("70%").borderRadius(1) + } + + Button('oppSendFile').fontSize(20).onClick(() => { + + try { + if (this.serverMac && this.fileName) { + let result = this.oppProfile.sendFile(this.serverMac, [{ + filePath:"/data/bluetooth/log/"+this.fileName, + fileSize:0, + fileFd:1, + }]) + testLog("opp发送文件成功! result: "+JSON.stringify(result)); + } else { + testLog("请选择设备并输入文件名"); + } + } catch (error) { + testLog("opp发送文件失败, err: "+JSON.stringify(error)); + } + }).width('60%') + + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppServerTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppServerTest.ets new file mode 100644 index 0000000000..8eea5b9652 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppServerTest.ets @@ -0,0 +1,123 @@ +import bluetooth from '@ohos.bluetooth'; +import { testLog } from '../../common/log' + +const TAG = "opp_server" + +@Entry +@Component +struct Client { + private oppProfile: bluetooth.OppProfile = undefined; + @State showProgress: boolean = false; + @State curProgress: number = 0; + private deviceName: string = ""; + private fileName: string = ""; + private receiveDialogController: CustomDialogController = new CustomDialogController({ + builder: ReceiveCustomDialog({ + deviceName: this.deviceName, + fileName: this.fileName, + confirm: () => { + try{ + this.oppProfile.setIncomingFileConfirmation(true,1); + this.receiveDialogController.close(); + this.onStateChange(); + console.log(TAG, "receive success"); + }catch (error){ + console.log(TAG, "receive fail, err: "+JSON.stringify(error)); + } + }, + cancel: () => { + try{ + this.oppProfile.setIncomingFileConfirmation(false,1); + this.receiveDialogController.close(); + console.log(TAG, "reject receive success"); + }catch (error){ + console.log(TAG, "reject receive fail, err: "+JSON.stringify(error)); + } + } + }) + }) + + aboutToAppear(){ + try{ + // @ts-ignore + this.oppProfile = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_OPP) + testLog("get opp profile success"); + }catch (error){ + testLog("get opp profile fail, err: "+JSON.stringify(error)); + } + } + + onStateChange(){ + try{ + this.oppProfile.on("transferStateChange", (stateInformation) => { + console.log(TAG, "transferStateChange enter"); + this.showProgress = true; + this.curProgress = (stateInformation.currentBytes * 100) / stateInformation.totalBytes; + if(this.curProgress === 100){ + this.showProgress = false; + testLog("接收文件成功,文件存放路径:"+JSON.stringify(stateInformation.filePath)); + } + }) + }catch (error){ + console.log(TAG, "on transferStateChange fail, err: "+JSON.stringify(error)); + } + } + + build() { + Row() { + Column({space: 100}) { + + Button('opp开启接收文件').fontSize(20).onClick(() => { + try { + this.oppProfile.on("receiveIncomingFile", (information) => { + this.deviceName = information.deviceName; + this.fileName = information.fileName; + this.receiveDialogController.open(); + }) + } catch (error) { + testLog("opp开启接收文件失败,err: "+JSON.stringify(error)); + } + }).width('60%') + + if(this.showProgress){ + Row({space: 5}){ + Progress({value: this.curProgress, total: 100, type: ProgressType.Linear}) + .style({strokeWidth: 10}) + + Text(this.curProgress+"%") + .fontSize(30) + } + } + + } + .width('100%') + } + .height('100%') + } +} + +@CustomDialog +struct ReceiveCustomDialog { + controller: CustomDialogController + deviceName: string + fileName: string + cancel: () => void + confirm: () => void + + build() { + Column() { + Text("是否接收来自 "+this.deviceName+" 的文件").fontSize(20).margin({ top: 10, bottom: 10 }) + Text(this.fileName).fontSize(16).margin({ bottom: 10 }) + Flex({ justifyContent: FlexAlign.SpaceAround }) { + Button('拒接') + .onClick(() => { + this.cancel() + }) + Button('接收') + .onClick(() => { + this.confirm() + }) + }.margin({ bottom: 10 }) + } + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppTest.ets new file mode 100644 index 0000000000..ee3428f1cf --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppTest.ets @@ -0,0 +1,21 @@ +import router from '@ohos.router'; +@Entry +@Component +struct SppTest { + + build() { + Row() { + Column() { + Button('Opp接收服务端').fontSize(30).onClick(() => { + router.push({url: 'pages/OppTest/OppServerTest'}) + }).margin(20) + + Button('Opp发送服务端').fontSize(30).onClick(() => { + router.push({ url: 'pages/OppTest/OppClientTest' }) + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/A2dpTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/A2dpTest.ets new file mode 100644 index 0000000000..3ec923791e --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/A2dpTest.ets @@ -0,0 +1,68 @@ +import { testLog } from '../../common/log'; +import promptAction from '@ohos.promptAction'; +import bluetoothManager from '@ohos.bluetoothManager'; + +@Entry +@Component +struct A2dpTest { + private address: string = "08:F4:58:65:91:09" + private instance = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_A2DP_SOURCE) as bluetoothManager.A2dpSourceProfile + + build() { + Row() { + Column() { + Button('on').fontSize(20).onClick(() => { + this.instance.on('connectionStateChange', (param) => { + testLog("connectionStateChange deviceId: " + param.deviceId + " ,state: " + param.state) + }) + }).margin(5).width('100%') + + Button('off').fontSize(20).onClick(() => { + this.instance.off('connectionStateChange', (param) => { + testLog("connectionStateChange deviceId: " + param.deviceId + " ,state: " + param.state) + }) + }).margin(5).width('100%') + + + Button('Connect').fontSize(20).onClick(() => { + try { + this.instance.connect(this.address); + testLog("Connect success") + } catch (err) { + testLog("Connect crash ") + } + }).margin(5).width('100%') + + Button('DisConnect').fontSize(20).onClick(() => { + try { + this.instance.disconnect(this.address); + testLog("DisConnect success") + } catch (err) { + testLog("DisConnect crash ") + } + }).margin(5).width('100%') + + Button('GetDeviceState').fontSize(20).onClick(() => { + try { + let state = this.instance.getDeviceState(this.address); + testLog("GetDeviceState: " + state) + } catch (err) { + testLog("GetDeviceState crash ") + } + }).margin(5).width('100%') + + Button('GetConnectDevices').fontSize(20).onClick(() => { + try { + let devices = this.instance.getConnectionDevices(); + testLog("GetConnectDevices: " + devices) + } catch (err) { + testLog("GetConnectDevices crash ") + } + }).margin(5).width('100%') + + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/HfpTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/HfpTest.ets new file mode 100644 index 0000000000..ea7bf1481b --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/HfpTest.ets @@ -0,0 +1,17 @@ +@Entry +@Component +struct HfpTest { + @State message: string = 'Hello World' + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/ProfileTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/ProfileTest.ets new file mode 100644 index 0000000000..9923623a2a --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/ProfileTest.ets @@ -0,0 +1,22 @@ +import router from '@ohos.router'; +@Entry +@Component +struct ProfileTest { + @State message: string = 'Hello World' + + build() { + Row() { + Column() { + Button('A2dpTest').fontSize(50).onClick(() => { + router.push({url: 'pages/ProfileTest/A2dpTest'}) + }).margin(5) + + Button('HfpTest').fontSize(50).onClick(() => { + router.push({ url: 'pages/ProfileTest/HfpTest' }) + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppClientTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppClientTest.ets new file mode 100644 index 0000000000..3d28dee39e --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppClientTest.ets @@ -0,0 +1,79 @@ +import bluetoothManager from '@ohos.bluetoothManager'; +import { testLog } from '../../common/log' + +@Entry +@Component +struct Client { + private clientNumber: number = -1; + private serverMac: string = "08:FB:EA:19:58:31"; + private uuid: string = "22001101-0000-1000-8000-00805f9b34fb"; + private message: string = "test message"; + + build() { + Row() { + Column() { + Text("请输入需要连接的蓝牙mac地址,默认为:08:FB:EA:19:58:31").fontSize(20).maxLines(3).backgroundColor(Color.Gray) + TextInput({ placeholder: "mac地址" }) + .fontSize("17vp") + .onChange((str) => { + if(str){ + this.serverMac = str; + } + }).margin(10).width("70%").borderRadius(1) + + Text("请输入需要发送的命令,默认为:test message").fontSize(20).maxLines(3).backgroundColor(Color.Gray) + TextInput({ placeholder: "命令" }) + .fontSize("17vp") + .onChange((str) => { + if(str){ + this.message = str; + } + }).width("70%").borderRadius(1) + + Button('spp连接接收服务端').fontSize(20).onClick(() => { + try { + bluetoothManager.sppConnect(this.serverMac, { + uuid: this.uuid, + secure: false, + type: 0 + }, (code, clientId) => { + if (code.code) { + testLog("spp连接接收服务端失败, err: " + code.code) + } else { + this.clientNumber = clientId; + testLog("spp连接接收服务端成功!"); + } + }) + } catch (err) { + testLog("sppConnect crash") + } + + }).margin(10).width('100%') + + Button('spp发送命令').fontSize(20).onClick(() => { + let array = new Uint8Array(this.message.length); + for (var i = 0; i < this.message.length; i++) { + array[i] = this.message.charCodeAt(i); + } + try { + bluetoothManager.sppWrite(this.clientNumber, array.buffer); + testLog("spp发送命令成功!"); + } catch (err) { + testLog("spp发送命令失败,err: "+JSON.stringify(err)) + } + }).margin(10).width('100%') + + Button('spp关闭服务').fontSize(20).onClick(() => { + try{ + bluetoothManager.sppCloseClientSocket(this.clientNumber); + testLog("spp关闭服务成功!"); + }catch(error){ + testLog("spp关闭服务失败,err: "+JSON.stringify(error)); + } + }).margin(10).width('100%') + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppServerTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppServerTest.ets new file mode 100644 index 0000000000..601caed075 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppServerTest.ets @@ -0,0 +1,96 @@ +import bluetoothManager from '@ohos.bluetoothManager'; +import { testLog } from '../../common/log' + +@Entry +@Component +struct Server { + private uuid: string = "22001101-0000-1000-8000-00805f9b34fb"; + private serverNumber: number = -1; + private clientSocketId: number = -1; + @State receiveMessage: string = ""; + + build() { + Row() { + Column() { + Button('spp创建接收服务').fontSize(20).onClick(() => { + try { + bluetoothManager.setBluetoothScanMode(bluetoothManager.ScanMode.SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, 0); + bluetoothManager.sppListen('server', { + uuid: this.uuid, + secure: false, + type: 0 + }, (code, serverSocketId) => { + if (code.code) { + testLog("spp创建接收服务失败,err: " + JSON.stringify(code)); + } else { + this.serverNumber = serverSocketId; + testLog("spp创建接收服务成功!") + } + }) + } catch (err) { + testLog("spp创建接收服务crash,err: "+JSON.stringify(err)); + } + }).margin(5).width('100%') + + Button('spp接收服务').fontSize(20).onClick(() => { + testLog("spp接收服务执行"); + try { + bluetoothManager.sppAccept(this.serverNumber, (code, clientSocketId) => { + if (code.code) { + testLog("spp接收服务失败,err: " + JSON.stringify(code)); + } else { + testLog("spp接收服务成功!") + this.clientSocketId = clientSocketId; + } + }) + } catch (err) { + testLog("spp接收服务crash,err: "+JSON.stringify(err)) + } + }).margin(5).width('100%') + + Button('spp接收命令').fontSize(20).onClick(() => { + try { + bluetoothManager.on('sppRead', this.clientSocketId, (dataBuffer: ArrayBuffer) => { + if (dataBuffer != null) { + let data = new Uint8Array(dataBuffer); + this.receiveMessage = JSON.stringify(String.fromCharCode(...data)); + testLog("spp接收命令成功!") + } else { + testLog("spp接收命令为空!"); + } + + }) + } catch (err) { + testLog("spp接收命令crash,err: "+JSON.stringify(err)); + } + + }).margin(5).width('100%') + + Button('spp关闭命令接收').fontSize(20).onClick(() => { + try{ + bluetoothManager.off('sppRead', this.clientSocketId, null); + testLog("spp关闭命令接收成功!"); + }catch(error){ + testLog("spp关闭命令接收失败,err: "+JSON.stringify(error)); + } + }).margin(5).width('100%') + + Button('spp关闭服务').fontSize(20).onClick(() => { + try{ + bluetoothManager.sppCloseServerSocket(this.serverNumber); + bluetoothManager.sppCloseClientSocket(this.clientSocketId); + testLog("关闭服务成功!") + }catch (error){ + testLog("关闭服务失败,err: "+JSON.stringify(error)); + } + }).margin(5).width('100%') + + Text(this.receiveMessage) + .fontSize(30) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppTest.ets new file mode 100644 index 0000000000..0870aed686 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppTest.ets @@ -0,0 +1,22 @@ +import router from '@ohos.router'; +@Entry +@Component +struct SppTest { + @State message: string = 'Hello World' + + build() { + Row() { + Column() { + Button('Spp命令接收端').fontSize(30).onClick(() => { + router.push({url: 'pages/SppTest/SppServerTest'}) + }).margin(20) + + Button('Spp命令发送端').fontSize(30).onClick(() => { + router.push({ url: 'pages/SppTest/SppClientTest' }) + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/module.json5 b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/module.json5 new file mode 100644 index 0000000000..841d6f89d9 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/module.json5 @@ -0,0 +1,59 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ts", + "description": "$string:EntryAbility_desc", + "icon": "$media:app_icon", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + "requestPermissions": [ + { + "name": "ohos.permission.USE_BLUETOOTH" + }, + { + "name": "ohos.permission.DISCOVER_BLUETOOTH" + }, + { + "name": "ohos.permission.LOCATION", + "reason": "$string:reason" + }, + { + "name": "ohos.permission.APPROXIMATELY_LOCATION", + "reason": "$string:reason" + }, + { + "name": "ohos.permission.MANAGE_BLUETOOTH" + }, + { + "name": "ohos.permission.ACCESS_BLUETOOTH", + "reason": "$string:reason" + } + ] + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/color.json b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/color.json new file mode 100644 index 0000000000..3c712962da --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/string.json b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000000..4b2469bb0e --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/string.json @@ -0,0 +1,20 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "蓝牙文件传输" + }, + { + "name": "reason", + "value": "user_grant" + } + ] +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/app_icon.png b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..380e486977b2d0259fcb3aed0f54a5e0a98ed528 GIT binary patch literal 6002 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 literal 0 HcmV?d00001 diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/icon.png b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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%0DS+p1g$450)(1@fA_ z$PZ@LrR5;FW*Pp~S;P#mQ6~1laW~~+OOL{LxAPt^sZ)XY)|YARHE{&8zR5vEJp57W zl2->kdI-{yDfzhmxZbUYIUml%B_~YimjEv={?6m(W|8b>Z(gpLwUP8YP1$b5*Ttp7Xk!gF8uE1xOdgf`H!-Wml-3U zfPj^DnAXb=5*_;nJ~Z)54wIo}(C&ENyW4}f7Qbd>QB_;Ds!w-6DWyWgP;nQX7RwSG zeknQbSu~YdqIkK{_Fkp!odiRJIgOXFNL9sWIGI-ckw0qZ!gVA+e@M`5u#n;}UGhJn93GAwE#&4*Vt{m<0Je zC8%4f@13zLhIyhaI!NnAZrw^frP3XEj0;TEPSx$IquyXIC8EzYfV6jsm=U?AZoq|f+#V#6~1gc?5~S!DncGf?3*dKXi9E#h|!SUhs0wrOn1BJoVG$! zR-t%`erk&IK)gSVa2qPkm256;DPGbcAD#90#s^REV95ishJZ?aK7_3ysgrPYqn^At?HG`lQJK?tgVZK5Rs@Ly%@yPQ z>LO|=-E}lRZ%im>M6T7ka>tS>p3W8f7t@T&+s$eBABf?Hj+2x-yv*8n?zAB@6PxtkToSf>|L2=H#Hu&L=f*g3r7pYQG@o!$% zuMKjSO>gA6I=+eXHG5%rSM3SsBGKULkHPGJc#10TZky=RUzus|`J9Q*02ZhGx1DPI zQMVxaiERuk{_%&dabn}jbt!9H+@w9bW)ub$-(d2ZIly8t z$wH<8vhm$fAVnwSHQ9eIHyn)F{bby>J;7gGfjKLssSx3H_D1IVyi6EfTlaHlUzM_E zhN4*OL4Q{Ee*!K{IIvfNnUcj<(9&=CH1r_Dl{>3lxoC*%7xS2zhbd;>r_wQzhZiX1FCNB(Z-wS3yFYVM|6N zjdvqUsKFX{BLXKqvJ|AffIZ(Eu@xbp!up!_*qJf~rSeu)Z|`NO17Tt^d+l2mGgI-b zn?(9jD7zO|OaYtjVks4r$x3D;&j%z8(gTdj>3jBdHgI5a6R*gJWFo$rpkNRdZ?LE_ zO#X;8luM-&^I5hwOtK)I4Y7sf1eGkipCnYA!EazFYL*wxnsk(1u?mpE<*dT%E7XF9 zL0^3n)$9=8+HbFk8gCA-YTma)MYgloM115|#95KYWf&~+WRwY;&uXSdyuE=+w#%h5 z?UOb8Pv)PvoLKrxtD8RRVPDzT5%Y0imEPgNnn(>j+es0^IPc%WxGx(NGk1)!ec?X2 zj$&sLW7~#fg%4YV8=)6nuKS<#8|iEX<|t6y4ZY&Uj3&?es!qe=6OOA!7jgA+?W)i6 zQ?;>$Pn>i zN5NMjQFO>N7(jj;-#XWK$)`H^TBVh8nMIoYx-%2nLBSQC)Ly}d9ys++raov}h`5-R z>*rLHTJiGhmTGNMGs5D20r&u6|i8|o16ETvNeRuESD z7?En+0v+K`xf$xkvqW4Z=m%a!JdN8b^N*|zFAhEo2~wb~=>!v98wOf!;!v{|rGYw1 zGBYG;zAw6JFIM8`zvLzoqKCR z$qzSvfWb@mWH1d_{*chDGGixF;KLDAvb z+VULhs*YOdQh{?i`GUC}&uCF`S{(VPnRP~9IZb@i8(g2s3H`el?SA@$h2q^X{f9Aj zPsYv(3Od31H_U}LFpfNCLO;8HW+qxMhla{gZ=%hSw_cbL@gcU#b-e2+&(dJ=G^`hk z{WC48ivAvOHrHXHxU|U{LJJKU27C+p^(~X!RsMoKeji^}2Vk}$U$N@V9SMQYGN%}6+owHS zy2XMb6}q(?^zAS<<;KQ#*E+_)aJcL;V*GK5Xk>9}I-5vgPhozI@SX;W{-QiLb|~@} z*7leo*H?U#s9C=G;*@i;e;<0ttIbzH4(oe_avO|Myt3z+1-Xp*VfS?Hd(HtJSqHUW zc+Z%UKxzC5x(9Un_PYDfXczVw?w|ABS&B<R}UTi`+eWF1a(O z1m>TBdNGrTecmR_aJCLnw;Xe$D)T3Wpar53n#JbA*xcn%L2dKbjzsJYZIyPDvNb_E z^hPIhx7YkfUkxtHMYFRFd#pJgGjcQUn49IqK_36yb4rNwgM->*1YL5M$vv`Zy>G;A3J?MQN5~0p>l{RF#^99!8ku``4e;sZI3yI?%5Jg&_ zVHUwPeaZ@qj~dT#i@dHNo?l(U6dwSMFZ^jt)&B#Zaf zt13K|>1Kco$T88_>#MfcF{!LD5k^il(JID6Ki$RQH2d2X4URxVD;qOR9uNhPb!vD>hrXc49w2_*$)4CNZ~g1An*t0>iu^gzn4^W3UH3G!{*7cp>W zOGDUEe~nP?ZcTGDMmdzzNhGx6L=ZVC!%N!J%NKNfb_<-E$bI4TfkmoofQK!3l0V*K z`=q64gw22VZuH#c*QCIWo222xMieKLb?4-$+YM`4g+J_OeYAWh{|D&ruFpz84)lRx z>N^UKTxxv8e))J^u)pJNW4-BUl#u=Jalo4 z!J!yi%aQF0Z!#bM%XpUpU=_ac2`tv1>DKQq|W0?pkmYN1RBX=8aa!O~nX9vapt*7XNPN=r}hY5`58%BZ^MnYP6=mnfX+#}O9orOEcPW*mQ&W6u!I=sC4qy3pf zq4&A$@PWB3^$laYKkAdeTo_2Y^rHto`Yw0BcV6O_0#+q-<7$$v0{tawjV4*0rcw9* zalb3#M&h|sJb6xd_<=>o#CslZfJ0^HPEChpjeTeq9<)d=n~SnVN-(l9|COXnvjC)0 z6W39dh}f=CYV)*k&i&Jl@Ah8DrbkclR0PQ21dI^Saof9PJU-8z@T!j6$>7?X2$6Tm z1zAFj+df(cyYzUeoRD_H>=ysw>Xj6D)I-MZG>O@w%8y#*>#U z788K3S$nVB?;L&!e068UW1C5j04%kh)WY<|HzWB2h00*NNuz;`Ga2UO0%qc|NFXNl z9p&!JyBXOi$)(2U^6W6&@5t<=;m_?29l%Gr-H8hHYBVTzYs?CE_l&HYyw61^#{ns8 z2X>v@nZ7@^t#>|YnYotUjE^J;wHJHjAJd0xM5M|IIV6`ObeH^ELPNuE^J+`O)Uw+` zO1=`xnsTG}%l5*6cedQ{)ClD-SZ>I(7uV`BZhbc+^D4<(q{*Q!0l<&vu!e~ zXyV6y(4}r}(JZce@>AQwAK_~cm}F(|W|eVmaJ1IJOlyDx!$-F>XwU<`SGTtm6{Cwe z&R4c_gF-|cJEtH2T#D~V}9PdQ}j zS@Ixb`GW7n|A%Kq0NJfBv7G!QIZ(yJI%TaPcFgrf&u{%*h#7UD?#~xS6eh%8t71Xc z;8dGS$dn!=n3X72ZOjT1-9)REyI(e6$gGbKyH;)qSx9*39pDlpY)GW!}sYJn&n$q|52-ZDdWuQ;zyD7Mr-tLVuqI0Kn0#7zLi)z z@ev`-uMu(63-!}A)~4w7ZOuYP1fayruCWwHC19W5UiPeO(*+ml+sNR;*bO0B{XFQD zOd(j!%=gahfc<)CnSmS_i~;JOO8%J+hQdz6{2 zNmzCotOe`%Mg^FSrS3TA6Pyr^M%uPFvOsovnn3$H5I^o0`O+GLsM!!j3Q zYEB9)(1{EKZb8~d-|c2Jd3@*W#+1_nsA3g?H?Y0UxP0tYv`_lNJ}xuxP4mURBcEu{ zsx#Jczg2Jc%4$1Z`%BMWkdho{lL}UO@4gIYq@R17hy9&i6b-B&3p^N zr+rMsh0J>*o>vm6C!g)W{UA5GvJ3+v)d2{pT?X9TM)*A2CPZ;n@L ziKeJh-g%Q)GgB^El(sx_#)33Ch83K6)HQB$i|3vq-iM%jwqRKUukW>AGk);odDes6 zR>wtHO@>zi{J^v6Pwdf8=jnG7XX37T@7ZN0Tzit1n2kE?6$nUich=-k@*>aHIBdV6 z@=ZK(=-wKa^?4G!EgYp`C$iql2Xo|Qw62w8(PNw&4x`M%LKck=ut|8XpG9zpigyLk zK6+-Mk@l5C=tI!wrh9o|U}w%VacES=<0*0?zzR0+$Qpa;*kG!UQ{UEGrcEq!t`TQW zC)m7m3aJf%Wq-bQgLtna$n9><)2wHuUE|8X-Mso|%dL6nm2&U~jPQ;4g4ti)wfQLD z!wheidaS-v&{R8vl_^TsVj*nt#Or!ox#R!NFQKi`-aVY2KVNnX;;9qs;2LH>-{dcp zg-M2ioX>xZ?eIg?qPg{=elQ)3Y3p0%zFaXM0Su~!)9eT zYfqEtc4f^q~<3Rx9+s zdd>H!samR^bxLe@U+54rYVk)%$JJPjW&H3`bbl%*xMX3MVvzXg9nF*l}Uca9`zyIK3;@L%h z7*aFL_d%(1!Yzs#k5_UmK%>j!n%&l?u}M1} z7I@YmlznPj2evMWzW+eUQ@MJ$Ep;OO_q#fNx6!T=Z3XZ~bh_gI;lIwDG1T}E&=07# z{}2}V3_quO*(U2d;g6&XueGVtve&opVCFTuS(3F$DfidVi)6Iut1Z z@T1B-mKkn?dSMCGgH`&*i@m`H9uUMa$r+_ua>Nmjtn<<~JQ&9{Pz3vZBC7@UKr}(?5+eMQ#6#s)@yqoArY?VI@r!=V!*A?A@70cw^gR!qWaYO zu9`XE63lDfRG}3i7a)p7yyn7^zKCJ#m~2+zaGrrj)XS9(c9IUEl+>nM@V|?L9tr{S zV7?vzyrQYxR~H7LmB@ScdIeGO@6D;{^tgXb+0x|SSv@7_RONe(~Q^7G!x z7#T;P9YQ8;pjESzag3;Yw1_E;!hqz8`*rLub1%d4k7xcNp7FFHT7@N&7kF{-M1_I7I=I?{JfVivQKg4YTGB1yLYhj@!!x>JF z+oUxNHddcH#z1OQesH|T{O>lgNolF4Az6<~Pox&9vk-b#4TuDayKnz#N@4gH0dbD= zcxIL%whFjqF8+PsZ@+2yue3id5%;lPKL1{WzURyGt)gR`!VioFw2q{HgTY|_z(eOR z>;L?Cl%RXB;BLZswHCkoJ~?$6^^tiumb_Ddj&gSx4RaFh?CdOudFAD=D z_4(gJc^)iC!-Q}38Gwxxx_2~WXokzc;r<~7vy!uzVjjNzp z`}6pc;T{CLnG+pSR)4AR1ceo0ybQR;B})fB>}IrI5voQWQ&D)yCCn!#noX;S2|n5Q zrZ72d!spEDS=$ovZ9du$SZtUB9nl;%+{Q+)v!P)ruo*9oXy`@j1Ey_H4sXyy%!h)0 z9(qKTH&AI6I_+hNeVRUOo0`a*b(edNDO~*$iRt=!$V&lYl9@V)wtC^I90QD9&XYGep)&wamy#-_POcT>xrl(-5`PkYog!9J*%!xd z9O2J{a{QFqX~%6A$2S|&T`@loRT0F)Op9dC`2z6OCue??Uc7jv{diVDrOhrr>*|ZX ztc!+dUCC#y#Rlt~Q1^U;9+Usa(VK^}owo1)b3D(?blOhasVbw2Pix;>Ewy{PprojM zi6pgzlAyLILB3C0)IPPP_9;aPA_-#8)LLSxEt_pnlqB{9iDZ87=l7349F8N0ckcUs zU-xyL=j$9M*C@n#G?9Js5q)7l6+Ck@GNk^ft*G_h5|{bL?r%bF`R$fR!bg?u4fD~z z<#mPaXLJ44u{vE?*C$%3`MOHR#uhg5wiLjBd4|ZjEuRgayD^GC5 zDIoH(BO_1vkC2vtMzr-l5qC||&tGpk*~az1eLp>~y%4UXXJI@#TP`_~bT5+`?oZM9 z=Bg8@n6Nf?{Tgutip(H}el|p1#fQADXa4IqzMKrmmGsc<@pQGLMySekq&uQ@_2V}% z-4s&)_txw2Dx=@~Dl>=bgYCSG$yH#P7Tazbc#)#nk-XM_?S*v1taayGR>`07|@KJ~8VEv4Gkt zJgXk$QJOga{BRtyUIV`^YMQ6z>-th+eE<5I`+wbvjU}ZMfKuu)n=3*q(7@&7#%=bf z35#;!eH@IzIM9JR{OhGQyg?#X_OeWPjd?UoVl8@itlL$_D=P6;Wy(X74rd%OOS!da z`@wI_XJt0S1H3uXn~o#l^VUlSw2;~NOTQ|3zd;rhyzyKJZkvcGx8|8FnB1dExQV@v z#0DVcu7{x;Qh?D$vsfnt=O*E=#lye=r_@q413;i%bPFfw`aG>_;mNrG9v&VUqQ-yG zpV$Y`7IlX4fl?sVz^iIN8s-s(s1M=(Zb}kQFaP4dcvd3bW|zUt`4C_61e;nAUjRA_ zdQXT5`YY_G3Ec-RTkD0b$Bg9>%j}y4*Bd{(wre(t-fZOX!3T(y&1I_JnaD^-PD^fi zOkI@%Tl=WC9gjH|CU=;?ZY=>D`h;njXo+GxXcL|c_xvT-@!Q6#ubtpdBdp_XLxaGS zdj*d&;Qm!K&hjkWUP2=_+L~!a9NDEn9lVVfO&|N7&;pv%>U-V7$y$S$Zw-CbQ_ic= zVz)-MM7&pgZ>&LVHe5bz94>MBvz>-zocv&l_m|C)f2Uh-9feuzf^mG+saosiEmu2) z0Ax!U`4l%`9s$uYxrcqht8bsEAR-WTB#$iL>CZXM50svH!sMb7Let04xC=$!3){tB zSV1S>eTzXU?KI2$g&Z?^L%^r?*XR&K_`-CBH3V$njG+O=C$KhgSXNnlo9Im~y-?1wb7_MrtG<8Tilw5qJz9>h~?$%h<1=nCqSnaLGfD}b-}D;o6siI%rV za>l`wCz}8mVjxF3O!;wWrb6ouZcEUchLPPmMZfj62q0LEQ~dU4Na|yu#@|AVqS{MF+KYBE5uJ;%_K+(?ihv}aVz^AWU!4%ev5u#fm zkC+8+(|viw`m(cL>TA6o>ZFus>kuD*B3LmXehGDPiqm`QffAf#Ka3H`mAf`Ke(-#I zq|54lzdpA-^ej`XIO8eo$P^sth`T&d2r?M^X)GowZe+Xib!4iac6Hja5H13V?&7C1Qk7u@j6Y`Wi63^=pQ{C@>0Y=!Q8Ud~U7NRjaIAiSt{r(UTO_mPxVOL6{ zh;I%*u$7LpwU{r#2Y{g1f(!Z}uohm1(Fw1Ffix)s69MviQQ+X)>e8MO+p3UNE;T)B zqMW>Rcj8|~IdgwC9ESO^a5dQAVOrlkk&Q-+iROzCSOI4k(u036IL=hHhFrZUxPlcd zG46!Hf>aKD3WMv-H)_E8sG@t{N9MpcknbMktw|@T*gc!b-n3gZ`30x3U1!oELUI?c zMxIvcxqWQxRNBCD0#zPgn>uZVztb^Z1Cm!jm-_5wG7u|IP1-PP^FvoShNVl|`^lhz zrlY%?k>#{$#~!7XkcXL{#1L-+iC34mEes{*aG&#tl+zu?*da`dYQG{?!FE~g)EYO< zl)BmfIKHPf5gP@@BoB_?Jc{_vQWzqg`}9gr~>PqjV8&yCN_ zV4oL}1k+rL)8rO+9HP!MT}DPmR%uv5Y1clG_6`vj>GBvso-02Y(@@@{FC&#SY=b`QR1jHIH`sBj?_c|CRsA=o{Z@o zIbi5Qr)+j-3ys4my0PLB{{MdAYnbgjHv3+r>Vu5#&ct9Di2hDB0k|>K3ZaD)o3!MH zz}uELH8MoD*E%_oV*CNZ^W+49(uQr z8~&!3UmbPU&Iuk$Dd|93MtnxB4-H~8K050$*HGD+g%Snl6q-BI<{(gF&MY8>sV#QR z(=xN_7GPz1@8a!&h&LO4+*Z5e@klLPw;+@JmP?5hnE+}IxCqSNbZ78p*z}`@mmcC_ zP!i#9zNOQ8wUq;lqxMx4GMhNd_j~ywzFxT{1EO`And2PPDKX@FRoFwZfP_x*LpqZ=);k zIBxquYWR~EAs@Rqu+ zdy4JJh#edNIxk1}!1v>GuH1@Z^&CYD!n~ZJBjEv~5oEs&#weJMZOc7x) z{BE5>=59awSZonZuu2G>Sfg_SZj+U#R}(J>(mOljfPp<8wL4F%7)Ui3R83x=HbSiPhu6xlA6CxwX??EakHh zW6sUUV@i$GKThiB=#Z3Y%Shwl;47WcTtt>-i)pTv`}~xl}h`*&|%@jXl1i@ zv03KZ`6h9DcN+>vgFUPDYirPa?xC+>oSnXxwIXA{&ImlW7EPH_m?=Na5V!Ln<~f;J zy+!Vr)`o2UU=4@9jfh6}8o7Wj7XId$;ge$c?ZtCYvc=U1-Uu^i&}-;s!N^*^-}-F- z9KWiy7Fm)tkxyKNmwX=>A1|u>RIB%XMfPNT>+{)VwnttEdhc2TKP4PSm`8k6W~+hD zwHkyDSGmF{e&0)BfKfZ&C8qcSzU?8uJaC4W&z^#A=23OXuPy-_O(D;U}5wG0)mXdSOCVJ*W+q_A>mBZ^K=gspU6s zo_u1LOCHE615edjx6k_Y8S!Hi>iEUZ3W;gG-x8@h9{>1}c_Ia095Q`adEHYAshAMi zR0OkRMv#cFNY-t*((k?)Sc@m1`SI5NEFQnY9O3gzq|0fzQO8(t#G5cis0mo- z&ZbUe`IH~_t2MBovidFLMTrUtqwvZ^!03~Bt2?gKrGR#A&I3j(k0_{OfzyIOhGrvqPbw^&kO$(?FC< z6!!>9&2+E~^n12d<2u+4C2Nt*zgWSX7A9ghS#Qc4>;}CKhCv6GoG)yTSN`#o+%@3S{CFmq#w-b_iP&lqp~Vtq{@YS^}BN)z~YFgSzVVrEZ_ zDcX5&`da}QlZ`_?--Dh;${I%3r;6{LhMcON48XszDWY!4a)GGtbMr|?)1gvk_xs+S z)fa-9d0}2jOV2+)=>N`fkk||tFOlp|ghM?9+y{k)hNy70MwHK{`YtF3_S><*jsBf$ zY=k>Rcbo{7jZEJ9-ht)Go#Dq5X$`37b z-=k0vTlaiImZ~}($I~=#udc&2k)|5h30eElsqM`pu-v0YGVldD0g2Dkb#|$O7W3OD zK^A?OQe{^_cz(nsqKd4DqrAS3d@M+t{Rx|tPgW8x1P7LKD6+RAg0qXkqZWcVT zNUI?i04NB$(-XYw2h8SyH}gWIGkq?lepP{*Xc!@Llf>qW8+NK#cy{Mjj`@I_-@LUl zTOx(3Vi4G?2@iy6bz?GtH(8*~y-b`DsEY z><#0dB8gpeio+Uj1Q7EITs^WMVH-5}7yx>zNsBH@m3}+V?yO^t;GSnKNpbx-26|!K zXItj<&aXQF1u}yby9gJ^%KF^kQ_YLC6a}Svqdy&NWGzY1c0Ho^7dafD&JCEPVVR z)Di^bu?b9CJ z#+4$#&qaYizu%5As6N4z=+jl2Y zv{QYvsKDT0lFH;?T^Z_I%5q^Wo*6!qLIcqef>pRff9v zSeSsy7bccoxBlpn>9EJdWTVG0jNe94OI0E$)e?-%qDzM~hjP){3nj8KBeNp3D81!y zdt$2`2%B?&$)%i;6{VL;kbVsL!qH76wt9q+VCbsAunj2a+@)X4}P|h*XkJ%Qn zkP~+^C@q5Vl_@HM zF=lFX2F=N;uTq!U4$7C55|xMzC;rLS>lFo$$_D^-`3iX~EVaVo)^l1=^<>9BndXDM zwfrmfLA`mMVL`LVZJ^LVhOkGvZbO!A2ttIkO@I+BjS2q`9I{4Vx}$2KoWDf~#cnn& z8((FX)CJKh-N%qVRe1=ut1ZZl)1oL>9Ut=>roWZByexSA&kqyP0iDNDUFR(4i(jnV z?*DK-C)HemZt{~C*T99nK#>4DXd*JlGH}|XJ(XJg#+NlaSNLUp{T;EGQwWjDT+alq zjz9?p?o^8#0hLx2MQynwV@manTbO<6tF|8HJcE@oEJERV3?U>&KW-ucvw0~avl^81 zTO`7ZV`JDB;dDHGGUFXR$xkpd^okaqGt8Rn-QGxAWMWmk9X8DMbl;zfZZ3fZoGbl74h!P=D?D}UJb+FiTno%6=$LF;z`Ef>q|s0|-|XCxgw#s#*g)n&Rc7Zt za%_bvS$-J92b@SIX4+dqxt9yct!4%NNrB%Qku2()?UB-+}n+DZDohfP) z5-AvThg1D7k~vXv4G$uQfdD^?ZC$Y@BvM0c%uC@l01w1GcV6>(X&NI$%gSw!bki-O z-lHS-#?92fs}~Ja!l+rj-W+fWyz8r|)YOW78xAX=ggZ3Hq03rlX)iW5wdV*IYQy7q zx#b(YISOmjkUws%(k97avYiU$=(arboyd~s-Gkf3 zA!aa+#qg1)RIPu5*o&xvy-Izv-{?K&*LUJjWLqfZ0MO#Zf4bfbOY28C%pB>&8mRLP zKJ`^tlx1A(P}WVCi5n(e*M7e?Zm3e`e#v%pFw5o2;9-Per25|i5tN@`mF2AT<7%t_hib}?JYUn@%`zvO3>`>bddr+O;B8sr*x&&d5Xi z#bL0Un5G~M)91FfHjbdyMCPM>vV&y8R1h^ti>Eh8Ey|q>acl#~PhYWY24|UjUg|o% zCC;XyjOrVs{Z=r1En7ldvcLyZ7t6LxV=AyyMaxc@ zqPj&}OEg?7F}s&PW7*DgO*GCo#M1}Ay%heN2k95pC=YyNa!33E9+Ng(1)PMq8NtFa zaGkNl?J}|fNm!2scE-&BN!DlHlSOwx-YwxIrZA+3K7!_bM{w@f*;5QSjb*DLyn>QC z?K^GWu{B1&41?cow8waRmd}>gZGP+yDsp7D_)$oE!Y-2h^gln$xt1lNjikmU`Fi;F zFO0&(fMTa;Fx*L;BW5I@y3U5EEhugH=H%r-Ic`Gj8o?SN@j?O~=wOdDew%5uv0ZU5 z;8X^N-yHiw#9c40m3pztYCYP)>81!HI*L9x8A?(riECRon#N+HY zoB zUI7>Q&k>XfTAErO;x5Y3p;^YQo}o+bgkO<74jrN3wpjy|ecqyoYm#15*+Ik)a$Jh* zB443N2+wkC-8dg7Kk?5GmpZwcm2(H7kGsskM%6)eRsBZpjsD4c7I*V+{*w2S`TyQY zR0k@-Zu_flxtrGRufd25^pPZ;JCoVhOf{e&nOM?Zyj6FKqagNc!v^&Cr`fUuZF}u~ zF_}`@S2(Eym?E_OoeJs`mn&2vEU*`wXUut^Jn7f7bdfsoTjS0ugG<;4VIl|D|w<^bQFEg@76O`6Ti`Yd<|5AiOY`bfu>9{Lo&fY$hVIV8F2Sa^Hu@s@^UC{O;>{m9@t;dkjAX9}{z(^1;uh8DE&Ws`S83 z5)VAn!ObuJmigt`l6T0SZoPw4C+5OLiI@v;bqa7Iw45lkwENoiCFgpk<;B|^q-!H^ zbqXjq(4#$eeqJ}2=07#L4ufV}co$r3oPW?sYzf9A(bkhzK8ef7vEdog`h4@cu^I}{BAMPYl#tkFOYReuAGaxO@rK9QiOEC zBIu=H3gg;LoEaBYRxIR?eL3oZWnp-JZpN;YO^$kt@*~3hKya&`3HXRvpB+udO9}q&dQVawUCOv z9!Hmm@AxY;&(~RQBfU(&SRh*ARNVb`x--Csq_SZ>lt>JujpvLGSxtP_`t94R^~PVc zv}KKQ?LuE{wW$7FB}+SB=7t;PIh7a$jm&*wdb0`w|62UXM^i@A;bXNB#2HgSVq3^v z4mNmZl`gf1@DMtCqUIA#azljl(PDXdOKeK;1ZzzpcrUe_F2vLjx43SbN6&>?X4s&A zc^kA%*4i$yOI^>QBr?soJrm>xZ*sI#p2lI6mYGT+9S=4>+al+luTm*Lw#S!g7E1o} z19CF%bFj>RNhKt@Z7X5!+luJ*NCWyHQfl*rELhhD`_(9)q=jkr-<_ zQ#BHsH@;--e*`P~dfMAuUYjZNN%nL`IO)+b_r-IZp0+4}E}+V&TVOBy?&vV4A$fxI zHPRE!oHFj@;tXr*u5e)jti@niOh#z1Lt0(us%UBn6^{BCB4>*&JhNbuC;$@mQpo{V z_%>`iqv%ogKR@)YQy}}P^lhrw_G^mmUH)#zy>0b|^cS$E>4GhLxmTgGT@DF~fYUl% zXTd3JeFp3v33=6`)bOOy`}-oUr7FRUCu5ATpmWgYM2joI?$w#Eg7igx1c6EDR6VE@ z{~NcW#CRuYLXcaDHaPS`xWj@+<&sVl(h>VyRJVH&LpM}NNKfXbp`4X}-|@_6bPX%Y zxLCM1?tj8cp8D+(B$P6qeF(qr^ra%?v)@^p`qaxWmHXbjlTor1N}5V0+6ss@Uer&t z+_Z{#qi4h?%tY$55{goAS6-h=iTu@AaEni9*SP_qd5dn)q4NN^Ko?w9_!LNB2L8)@ zcA#~5RWQ#{Bl+=+s5V>M*VsAOW-aVoh;91ImNoBSQ_%f&DOzE-lhr&%v*7yIl|pD& z^;+fK`f5k)luy?9rm{N=UJPt4ZP-2=qb^FG-3;vYgqXH*Gv2W6#z`AdhTaJL>_PfLt@09fM4pm`=eS_A=Ix_@ng zhJki!+Rs~|_E-x^OVouOYt|g)iqE%ZKR;hzPvaqW*c5)e3jfa!D|b#p>ibX@S*I@q zo`y_FAs)Uaib$N?3F4u@^2$UoigQhsQP6!Wv!um$+Xi~u#i8U^4jLFeSv3t0W1t(O zlk*aCm2ubL#U~1bfnA-yKb(;6+8!g>HhBCj_p{8Ny51%hq*OJkaJMlyO)gdqpY{yM zN7VW7J)y5{2K>(taf|J!(nCDjY^8yDWE5;RK|yXKrup0=MFPJ;2*LPpzyk5$LXm9o zmAntgq6}hnlb45=P0^BBR6BcZpk&BzgMJ3WphCVMb-B-}ONHXj?>u2J9hDgZ!(qn;_iSi7=}@vqY0uYBQt)b9TR<2;yG*iIyWT@o+iV;>9x1$J*J(jp<@L^q)z zGno{%o1lsiB`&q5&JW$t*<#gk!JO)7OG@2XC#SC_}`oYZyU7@JzW)j2IjP_cV`Q zTAs&baWLk9M2E*mTl4bV;-1wR<)_n(!}edVhD%XrCu4$ z(Y(*r>Og5mxPPK?p}2wa=aR5vd*ylzK!R42)-u>n@XAK?kgh^0aI`DGHNf37^=^$^ zk%NPKm6jy69M77XrlfM}QD_+x>J@Y}1+jWO?=>7hocT8WuDq52(nceCQh-&;?0RTtcDEh)k-y4JiHmdAFa_tnYXBh}#jxk!4mIznAwk@R7F#(s0Yu4bv6=4BRQQika zf^1j>21vWikGZN&X_^+S;aY?p;$B!;{|U1Uj{f|0NziFOr9RY(yTz@us5g!#w;w_) zuEiB7{}MJYLMN11ce3nZ0ZWdMWO_3>WLPF3qCo1fjTM`7S$Z5h*cIU{ubyl(UC<(# zFEGsb9#y(c~1NU6JT zO^fEQ?PTii;q%)l@>5D>S_1BStWB8MMCx0_XbYvU)iX=b->kzU)lyi$;dRoyEbJe< zroygk2c`mo1i6)cy+gH5<*vc=SH89=aYmTyCcAyzS3Itmla;q?MMZ!Bc9vH@U70l< z?1AG%@;jDFV^XF_ZDbP(&zHSlu~nipzT41#M1M8$;DrAo;%SzvE^k5P(_GK)eB0W| z5Sx9(Xkx|reJqU2>}iLmnj>>jWOBAfyIrk=f6G%hI^uJ!PEgs!biWxIWA(_OQ&Zjq zZP*Rx(39exH2pEOVFv(~dFO9Ckj2!~YLeX6KFaZKnf6R<5`K4*!b8S12bh(ZDYz#E z-)dN^`w-_ zemJ>{Ii{|JfA*!eYUSCI%32QSRCUwAL!I;GQZ;Po{0Fri13W7i48AisILeg$W|oo^ zp^6SDtLoH!$d(?Z3;O@W?7`}R!OE0TbCs6EcXU~2LMfEWY1Wr7_M?>zdgLFhY+_AI zqeL+wkbeu!*Wsiv0zoIpGas;IPOY3o zynp-Gw1*cp4SVe?U$MRjXQ#KI&@1}6O3tbZVkcQ~J~L?`eILI}&v`K%^3ulVFWh>r zLrUW`>=Uu80I{YfD3o1UhZ5^OG+##D@!b0`@?X*@+DlYPQUE1(>xztnbY}@#bp?>y zK4qU73L|q41@NHhjp*^L{+`E8jllt z*2bmIaF=IE++W+Zi`H(&?VD47={3s$f)0I#uK>(SxWzS!@jpLY^Q*dB8`Ntj#R#GP zd^kR^M%Uk|7IEXmZ$5cMFCXR%pmcpI+Eu_Aqe=GmaXC2@sB8Y7PP-Tq^)^zrA`WYb z1?{yg&mu-Kz^$qs0~-~rhkV^~X68Xl7HA2;L}1Qq$t~#?b94EpmRUjfg1&Uus*9g) zAP+&I&ogZoFa(5f$PHHGM<|0wwRL|Z02@40gm91Qegg*cHX;T0YMwT%6t%V*Eq3iR z+A0Jxco6e8&r5$8%bF);i~}@*_3~@wF=uw-FH3NWTtBNU3{4Wxlc{11)se zYWL@uvA4JsDGx`3QdG029|Eq@Y98tlak9C-8fK}RfN4g26jymcD1J(~oo}VI)2&8C zIeUh*Uw%wJC<_LZHtqrDjcX?hs)bZt1>&c^e?wCa7w7U!bbJ=?tIqe)(7(Y*_c1%X z!#{&;5`jIL%-)DVw!RGJNDzn_S1pDb+V39{QMKaVwzW41MPvFx?X+U>A$I6uzulcP zf0fDU(qPbq7y8QE=ruOw`Oba6=Hy?(|NoWcHL%~exh5WRSaeNgUWEv->zNCAl`PIT z7HQG72T^cFt2QSVv_c-Q8G;>DSy*1cO3#MeJw%CSBkhgS!8sW>_{EWOv#Cf>A@!$R zop<+EA#3cRQp=pTZGQwmO|$&tP*r7&p5KMKP+h&MQy1*UbPC?e^V6_zgl0LVDJxAC zr58T|u^=eyj`R}|8j9x)MhhJ9A?6)6b*uq`Oc*c%kT!Q|uX`!E-+<7k%U+zmuix@% z)x7#mqqrl(#VI|R)&aHs0JmGpG+wIxnwm0dM!pLwg7&DoM2QtkYT475Zm& z0iEekHuzFG@@Pv}-!IoqA!Up2So!m5f@=hj*oxmX_t!AHRRC6 zwb7n9ASj)eZuVVhX_P&y$eu@K?{4pM+Yf3Fn*RC04TsfUTUB~DYr$+F|7yE-;vuTi zEe#tnu)dOqQP^B4fpuOA7XGj77IZoIDhQ%yYcP+y;k8=sEQh_t0{QuUn2vYR4GTX< zw4qqji!PH8U_QgCf7nr`+^$8nK})e~Ntgr1U8k~Di(?&Z9M9>A}=)uYxt0Vu4gYN{Ykmz zKUFMiIb{I&t1KTu&qM73#|P}c@UN8-X(?6Z|5-frnyY)kn9p!q>@C`^Nt&~3M>t$+ zjD>lWZ%=LqpC%4DRCV4N)sFW_tpH{J$!Zh;fTv#@dBz-Z+Pqt|>=7DZ&Z~zZOZkKD za|TUE+{nBWrz^dz0y}KZ?O{l)t25TBw#Ig_`|^-rvbSdTYvISIO~|zz4}*_{GN;dR zy09D%4GHbE!I_s1v$HpABfZ;Z-dUDdjdrT$oFqEOvyO8{7%x>$a@SK=;@nIT%wE#o z8&PJ`P`JBU$YSny13DX};)=nMfU%JIP+-}Rk3OK~H?Ll`#@7D0eC{~ku5oPH<)0t; zwPIPe#!}%vyyj7^v!~l-E5s8`{9p4)JwjGCDRtQp}a-%0ewd^80Ld7O)56#rFX<8 z#_O1eLEmxO%j@gDJgS7}fs?@O#XTpG_j)eyFmHRtjKvz#?aY#{XFpiE4?QRV88 zVRGco5UrdHiO06SUJW(MhF{cO8SlYlP6J&|VA{6h2I~2+LHw^UA)0Rx(Yj47X>T|H zf6jRl_OEZWENH#qY?hqvIjT3D=AcqG^ig{r2@aF?-Xm)@^842!RX-cu90U!(j5T$g zN;K+L9D~~bAZKRpkuEI3NUUl8y^dB|sYLZ+1A2xX0t1g;`F|U!AQi6{Wp>J3i&})R zF4{R|A=uF!kBC~%wN{LT)T+gygjN`NF5xKV7AbdC98NU)GWTm6B7F_xD@t zOLmbC=Y#%ckY`$Fz6>!xRjj=ZFv@u(BY}~HUGaDkKdYmjt6$$&F@D2WS*xI{Q)#-S zE#i6ix0VBSNeimYo^ud-**RDnOWf8RX^d!`!1K?Z57m1U)8s&eb{A}gp+of0=a*`` zD;qrv@(k$kek-@ zj^;4m_66*^gAHbLX5y05#HsN7oeOgp+9TuJ^WILBg2J@}YJMhI)F6Gk*}3@EGOO+y zdf!axQa0RlC}C|$J|H#z+Y^TiPXuH$)C>@1W!DlF2@CvHHvIGu*-P|vn>aIh&%y!D z*XV|`22}5rBG#uF1>h6hEAn#oy2?krL-t5@qu-gU_r~*&-6Nj`i|6)<4ZguH>e4}LK*?PWv&*kDuVO%O z%;(@*quT#;e{=fGdEjBZ70OO2mEgDzF>1= zv6c#GRggtDgZ9efIr+8Lf_uRBfj|Ju5H_f1RkQPq+RU9Sh@a&OjhHb&QNJ$2)~8Q&21xPQ7|$0;Y-y?)0UVwpHcPtM=jg3;THM-G>{<>INZxtjHD8m#C9nXYoeu3?iH_~(4h%O{bK zRFmo5F{akvQR2oWTxgSAxf4eI`X!7?{a|C;oS(-+@;c+pWev9U1x0^JKT zR7dK}g`KA7#h6GdhE4?8?Wx%0{@xP|E5LoO@_E!wMZhEdUdZ=_x3B9X<2t;GT!iPr z7bW8?K7B%p(7>$UHL03k&ug5AwzkVq(?8GX28mS4Ps2R$+x*1Xu>}{s;HmCV{Q1D7 z=r^1%i=aQsuKVAwGy=*YZ9{ZX$GPt)k!_u%8=F#>o-c_o>S*b9n|JZyYZ(p1Iaonk z6YOC)KSByos4qXupA^LyNl}ZHjKW1mnC4D-cLwg%0&h|-wg_}+0~;^U_-Fav3E2c_ z_u^D(tLFqoq5u+YB!$p3?n1CDB-Og%ufg)OPEE_$pL2+@;rdF`b+D|NvU@Tusxr<# z5ACds3|jUZ>3uDRh78+yuvX{gUG_Vdw+=r^9h}|$=HGsxWVZ~~D#$FNtkEkz?GZk^ z?9LY6!#10!`MMy*?OUj93C?l3-)}mc7#FP;4YUrlN=Z4jyL_^tuvde!Cl5;1ErN#123l~o-)%&qMZTJYLBiq;gFAjd=6b~ zR$oHUA?uOYe;^qtJrqo1LP5D*DoBFxtti&wQwVRKD`n5~y(Wvd-}#jA0pfse+mLIV z<9YJsclg>ON-Ps)8G6o7sA~Drv62y&t{*J@bX5Zp6g)6M4^>PY`LEoB?;X3(d-$8F zViUd9uv}z?2Y}kJQkI!~&q0K@*h}Q5i!y8B?Khvl*2JERcQm~^p#(eY-})o%?7mkM z&7ItsxqZ`RHyV6- z^8{OCQ6x7eahkUPtr&CX%I&1P8{GI1e=6|@Wh74tb~Q68=R06&!g!ErTNY**e4pF~ z1FFct2$c_}bwy}T411r#y>NLYZsI5iMHq;9sj5}@xkjt_vdtk$gkG{D^LgE~m~6(M zdyFC4$V+{|Ft(eKMw6ospTUPE3qs1%#b9P&={PcwFlj{!A zH=g$+xm0tZRY^(NrRW!je8bk+VjU0hdyebO(cQI#3D44bvn&3d-uC}Z#5{dTUnuhW z=Z8o#D;!qtsOwHwRU5w~*AOB-M6>e;*aG5b>fthbXCr5*`e=4JLL&p2nFB9{l9MEvFe5O zzk5gv9cNL9;Bw-eF_MEm(HkuQLD)LLnNKe>F*GB zSGqRp#*IGQT8Lre$qaWS{mj|Wh=zZDP_K9#>#*ja{&|hPUwIunl=*&{WBqRr46HbF z0hz}Wc+H?21s*B>bZ%G~(3oPgD5AVYMU{aJn?0?XDG)z6#_{kCU3ZOS|1zJgk{-x?^V0@)@m9LQt0dx&hS5_a47EPU^{JUf7gE$V%1=EWUUM4PKU79e*43c)>t6HIz z>AMvZM?TnP-5ufIQ}Yus-TcXcp2MZ@ld#jUXvq(=!$s+=#wlI7dfQ^Y_fSF?=QKeI z5NI09^INMrFL{azEChB3CB}s^cfRE)$_J;I`5R5Y;>~6`zXC-^M)CmsUl<5b$|j}D zv!$BtJ(Y&D`(7?1wS$+Cp4`nSt(64pPl`K=;Cdl|#Ut39%P0>QHZyhN_VnGYTS}x^lobQwEEZLI(B{*w zy1#!>7#p>&@GMy|@S=C?SnP_kXL@!6Wu{daT{?Nus0>XHgVXO2Vhfre-YK|!L(J>d+OWi6GEV?--nvlwZ${5$=c;&n;uGNS30 zb*9JP<;UCc+kg}@ywf!Gz`GdQf1>8LIGoYYjuu7v|b*mJ3wwxK|pn(;Guy3e+@6l1(eSAk4M7&nrS<<)qR(K@f| zr|FZdc{=-(5EFfowK$?V9jB0M`A+MYyms4Ejfmw4-bQ{M+U00q@Z^-np~KQFr>mvF0Zw(*OS3MAqlL%>bOM$Sp^ULGo&UOF%V5wc8T^`sFV5^*O zkR}uPIck4f^#G(F(l^~^XKSL5mP;}Xxj#_-?0HFq&M$hGN@JhZ<`c(VDbnV;e>dgm zmnqXgX}~>uPc;?sxP2KFrWxcjkpfIsQ}wQGS@l#Ps?(}>J|b(ZDxDI3vJc3@;{+Q| zTFHs4O{kGjE@})(m99a3{76r*VC%&_YT1QpI|+OGc%N$5dPG*X21CW z*yOvuiPF?8t8Z$dw-c`49x*;ph?=>m`Utmexh zi{onL^1`*7_hSB?V`Z&mXMlkY^pLusO<&7YX94)u-JGw-cbS`qqrO65!fnPB76SA$Shlh5pq?XlXHkh#!i(-X+zj zt#ji``(CXWV&3^~(rr}^5M-_`_DLt4xsrzqR`7-5S`#Nif7i{vy)2SWu;iJX8xj5j zPw0bm2;awn)g|7kBt%S1vldhZCeg>J@X=3$i3IoV?tmOXLcb#ye{nqjylWF=Yo9v87ZW^1h>J_N)2QpD;G(})(3_W?C|&Oh!N{6VHYLVQ`~v8^?oemc*aJIw5_q+8$lF6nd4KoaY0Eikr#=hcMr^oXpmsBXb7 z{8m({$23+`j4wf%D`vbWb6D_%|m6pt3eXq@c-N70+OvzfQ=|NYL>&a^eH zZgf#Rqtwn+Ek!XiZ5dM38bPG?T0(8HMt;+UqNp`R@zh!(35g`OBx5hJ)EYr(YnOyt z5|v2$yFY(`!*S%k@Avz<&g;BhXSsh_@H`p-tum?sxk~`J_4mKSPUZM#t2(I4(YlDX zEq2>Q=i`u`d!BU-soF_DnW(oXUs zJpT94Lvx3t1K_cnIDj)Gwr0EXyEwPNx2@cRw9)B&brK~qxhm`@kW5gY&_OfE8+DlX zoBW2tzJB(>E&n;Y%j_s}X{*26H!fP1Fx4Y_qLUlU*cI+y&#E97?#p55DO!^DY)Rhx zWPCH==Sa8nh+weXlmQkC$m_?kdO>}l_hCOzUmYwkq3Yx*_Z@OpIdcwC98vVV>7B0$ z10tkhfo604qjAybF9CV9IIo*(9ZZh^3Lzn!)t6k)>VO5OlZSF^S)4I0AG5E}U+1~2 z?mY-`QXMcD{PKx~3CB!RQpANrW=pMqfqdTS7l-8Zr}YTb2Fd?C4usMj1AF74Q8>Nz$vYz1_+%Cw1x8YU6h$= zFSY;2u{JH($qeNQcSMWFLdPb%kmq(&$F9cTS=28?@8AhpL83G9=A$rd$>M7sXmR=4LcmnYnNLTt?L zTkLND+$Tg)wD=-Nkrx&VwgPrQ%G5*w69mr6HiAZ>(fysUbDe$+mE5G9fQQA|yTbPT zMexIM_9#d6>je~3G=^K}F*VGY!4dObRG7tdt|<5gu#Tpdz=fTK&7D7)s=mB zq~mUsOo7JX)9(DZ>d*C_VDn2YO?wfM{+KkSf>FpG?mM?oc8IRAwrRO#Sj{C%;D-W( z+QTO^L5z|c{mk%3<Bz7icf5mqeYm7K`th)oEoPIK8%bDBjNx_VWFT@LC`OanW)a)`eE> zoEnu4*7X(Eo(k6*TkIqW+8RYN&wV^GNT`Q$g8+P&oUlBNk^XRW=2Q*&)abOcy{4=2 z^`}_02}1=xZI<6iS@zr||LjZ%aka^QBECRTpmRaMI+KmS*6{j8N`gdsPi}ac%rzOW^3@mU;yP-rbx!<3#iyM%7YPsmsTR8UoMAP70 z3YaguJ0o0+CeXT1Y}4%}#ZyrlSu}GZN97e5tBowWoYbg`D}>dUs0{WD;ZBMw-Z!Q0x? zpd}TD zRsU7c`(S;CQ-5~BPupTD^TM(a>fQOjbF!Q{stN(GE}grv6RdqR^?r@WNpS;oz` zg{J<}`Y_fY?D>nee_34T{_EJ7R9uV0Kui*R8g3QP2Q6+wT+uMd~Q&#tPn{yTZ_&1?o|jrw+&Ktb?7NTfWPiwuLrS96YXo zDQA+lc-0i_cj^O1`E?b|I|nK^yv_~;2j2zP=6PVEZcJ*yrtX;P`^#)=u<5z9tA-(~ zn}d1x3$6Q0&j0l6SD0+1ds=^5ZCZu&E@$QChdqVfi1yyBxTlTpT3GSAa+ex~oHM32 z78)dv7yCi3pbfEeg4kB{m>J{e$PIsK(Awp|ZuL2H+bL*DVY&c1v0`X`I{sE~63Asm z8S-mMOl8=WsO%Mf;w|&EAIFvi`PA@a!pIpZ3omB;KSnRURqA+rocr&<-H^G?a23p% z4jFqsYjW6*zM0q*(ep;>GrYyqxj!3Y_pm!B^qRpJ?gsv5&Euel`3tK0 zW%-ktK~=UA*{W&~-%u-*>-R44coo)G7H4rpng#$iazw?-4>UTr{0s4B!}{8W`j2C& z2ts(WE<6B}m$%rP5zn}tJjz(3WX&`=ujobVL|Klp(g(~>ETereGGgv*yu{Ig)KJ8id0QBCtyV~ z-`rZV2fcoW{zqu0dQh4%c zJXDLpVI~HJs36+|p+7G-t9@4*vhhy3je#PK2R6w*Evj=Qr=?Opu z`e{JQ2(I3IVq$V|igT$958EtDkzFO&B{aQDlvnxXZpHj zHqUvi9VNfol{U*2**J#Ph+p0vW^oTHuv^X=t^Iyi-V-;T$D1 zrTbg(neP(s{ua6JIbq)#Q08*&-IV=%=g1JeTd%}$bZKST`{yy&X_c@A_iI9FDp(wiEP;;<7ezH9!AL6yfkC|}lRnGy9KLWf?X26= zLPaQXLkENGUEgX~3_Nt8dm+sK1&829u?L$%!L%*^FtEfg(IPoz!DzVxYT+Au1gtT_ zRQdjNVm0@-mjc~VmD14)aC-7YfQINLjcNVW=;$aPvMDSvD|d>%aSfhvodExFEM;O1 zaW%H)-R{S~{=#|99;xc6?A+9%OgI(AIE$_&Byoan;-($4_(`lwS%WPDVNRQWll%zg zy>Iw&Hwm_npLK#yguG~Z7e`R8%$@n%s(4{M&OqhumR2|7F72A1L}!`m&+5+8=XQ^k z`A#urZ)Z2qGNw`0cuLb2;=)j3yJt0-?w^~bksF`ytUR8c9#u1+`0#<1*f@dV2mv^k zd49K4Tb=#SYpe|Szek>YlpXKrFptIj_REE| zr>%~jy^mkLltqteiRBjqRn%g?tsy#E0MEL)!3~~8W$+HL20VSSl@}hQ#)+XnZrAm( zv+SX3n|E%0h$Uz*igETcjd?fi)k;=%i{Vd^=7Zt5rW^isoUJJyQD6*guj!YJ&lXk* zw-&{12P~!j+^8d93bew~vSG;$kVo@=;UA~AjdUvdrkkV#!1L{iAaTMXoH$JyKs{J4Ur?H){Oo|6`3=LJYJ zS%7zWP+qt%4|Y?kuur2i>>k>u&5nr*Eu!*-+x*Kc+G3#Xk7Gc@>swKv!$dT3dj%ak zY6#(5P?3oZ9BmPO%;+Ua97rIWEOO3Nh5&68XjVsptLUYR zKX?=HVj+613%%5OSI+bbTJ-lU(C^LnrCwyJe)!a9cprnFa^dMbd&!#$#!vFUep&p` zXEyJQ_IAvyKXKAi`Y7kTA|Kf4wvF~0$e*ZKsk`7oEDvA$c z*M$0_3~FXZgq%NDfGY^b)`>zq)N=saEcmwSp7*W0=ZmJecNmx%0c;IVaTK%n4rmT5 zI?5E$3SL5zHvW)tM|@g}!UuXuE#K;w6nXT3dN`d*sv zZpO53Zgk>hE?_2QN4SvIq+4`KDx%M}Xa%}E)~zCw;gc6~cKtQ}*{|5#W#T_zF4Rlv zf1v>GENC=C*1P>zQ}3Z1-3)V`2TeB{U9>0s63DILP;?KVce#Agl)?syE!NHGY~4*-+CH754Fha}@nKv!XeukQ zH8>FFk}?hft#F1 zx{nAh)gvn}4ShF%-Xx)W^WmEf36TN}x3Np)5})nlgJ~1;4MKxP>uS0d@nAhb4VqFB zSYW!|iZiVCsloHu@lA__c8+6OAPBA*==JeTGk@7>FX?;XU`FABvmxMj3@2pRvW|!K zXLuK>eSW&MUaI=zm=T*dimxvx&`j-A_Txn0rt9(@aXeYo*1^_`{q@7y@ks zIppWqU~XMOrmSQw#CvdVztDRx?KES*dtEx>11-7MOC%XwJe zVQ^Me;o9{`J7c6B8RlZY^4{yTQd1Jub!#bOj`z-Xq+6L>qMGb7!HCrRwBYiJY>w;C zsW^W1lmg4ilPTR7A@Bf61;7eR^nn&=sr5ujWvc$)%_P58*`&^|Q2$i>02R)*O^R1f zlMct9>Df?94tJZckIytv)lSoIC<}R=)kV=zRDbjPOtZi56eo`2^~eJE;}|Af1Yh(K z2~x)m5|bB<*oq`;OK8e!FFUDP+YVp~aF^|+u>_EZ&!H=nk|aM@awnA)8^czFJ2`Xr z*~Kj3zF%mJ5vLeR@t(GUE@UIxQ4NEy7JoU_e`SNLiYM-u6S!816=d)RGV7#B-$Jg2 ze?Ti2eAL!PH9N21*)HB*Y(w297u$T~NQ;P{FX3flq8-|>_N<4 z8k0e z9(s-JpxE0LrQvcID2A2oKlwfu?Eouh*l4}9{vOC^@ChU^WLz}PBvAKXj~-T z`ckBP=vQdjXnp32{!&pizw|^L5`pqs$po_p1_Vv;t=g*-GAhC}t0~pAq@43VNlyyJ zi}aeUR%jKB)WFQ{pykvGHF>d@xjc$<`KKFbfqVz8Z*`4yw{XBnb&DEbEo@usDGL7j zq*&{7o@UO2w@AZ2mFdwr57Lna7uLM;Z>#OOWP+qfH2jnziuwy%9Q$8RIn;s~lR4_n zPbD4x*>T4B%pLj$CxR`|%q9RQzXj*zHfzMIxIAu#k8f@_9EsPm;7(G;-P=Q^<;K#p z;hW~YGoWx4qZQ7>2*zv2|3Y@ucE_$!Yo~%&V)DH=x=-BI7E!_8&EZ?gu3M4h2Ti$7 z0=a=4g1yeTuhO4sMJhv;5?OOYo{bTUr)@NX`HJ&x`4(z*{Hww6tB?{O==Jm1)|e@f zna6%%`$0`95Mmz|ILBDPz&M#i1nb^?S%uN>N!`FMSRamrGGaLgV0l|Hj(~8P5@(s=rw9IG8C(S6dxlk)>C%NjsFX<8VKi#weaAr7O%sPNbU54{#x!F;C zh@}VhULCvcj#*I)w%vYlShfPA7Xq4z7-+p1aHSyPW(jPnt-Q8=n;R0y5tndHws_v+ zDBt~b<{d=FE#6WQPX{3-Wp17coX*IF{srW)LKD}!816-U;2(bcq<@a5Yo_|n)fI%U zrteXS*^49nJH*L+%e4C;KiSe~uW6Og(x2Py@pZzmshjO*E*m4{Er>j!Do^sdKKM@T z5%5a*n_su-As`if52D4uA?y%oQZLV3|MSVZz~g5Q!hWMbQfjvsVdH^lwL1h|HoE-l zd#n6L4*E1ib&&Y%Nps0>O5~W!J|o5434!W{<@iv;gD1KFjxo1cbz$YK%QFetjT{q% z0dVLysBYIbzk?Q&p}$OQxuL#!3>uBWRrwF+lRIbr6%q;MBAzrWdewpM6@)gNWS=7TnKR?0?T$)*!Ie5^B{B-#f+~%cW=|<>>u;^>0 z7-0jP$r6UCGQ}z7Km}JS@ok!6iu48fm;`pgB(0sBc*#aFfar5M%&Y)!F-6?B?GK}o z#vc)SZv>ocLdYitAWCH-kxV8#ym`F9K6WR}bLy^1U_rIHN7rnYZ3{j)Fa6z9q-=rJ zWIMwmV3cVD$Yjju3ADYIy{nyz;BGesRyb}5zA%(l?%B?dHC+^i#6}Fzf2EQ*#0w|< zPU;zJ=G5IipM;R!nMtCT-PLNcQsoQ?2mXlY)K8gH&n9k?#93&_$BmflXX&tW6eo6Q zOuV5A7%XK|OfQ(&*0BRl4ygo4_dDX@vn*+%6KW8wouqzeae;lRm@ z84XZNq^AXF4tP-yo8|HRDW?YOWRO1BK9N1M)AqH|rJ{11-F- zupeT@EuXv;YSDo5qM_Tj_+<^W{^Re(D3!B&EyQVjJJ)Za$yn4pU!teuA(QnV>MCcD zJdDgA3>$!A^GA1Zo^{I)UR$|%!947juwDvPPs#oqh4Fd$YL-zbA2FM}S_<~=nokdS zSQB`>=*joszY4*vTaUzLDEZcic0*Nk!?!2HH@xDFlspu4v_2OFDla&Y|Z<9*LPm)CwIdXpQH)Y zR@b`$_nZE=uN9mx8^c7Wx2*4TVt6|cYfzg06n@+HmNw~jz$_wfH+ z>iL@Et(($1iJyg9lEHsgrcMMYJGs9IdEtkuy^2YgA@5r9ImhCW@g4 zGdkiJ@w8xtqC0Twfr==YuI{g6Mov zn!255ew064Pjn%rw>-bWpEYb>Dm0ric17`LKaSG55>o9<41I2KYSf089(Zr2TfvUr z*8b=ECU}O6a`gZJWx%f^ayA3cOlxo65E+=-hRU7e7l39aYAh=TftQgbMiJHK#^>kF z6mk8UVPQ)1{Cr$yzkfwT_Dq|M8iMUyhZxgX=x7YG4rr}CbN0C}1y86HCw}R4A1+0- z<2j`VzzM{@=(WwlPj;~Ct~+(m_qLn_a~Y1awu&$zZJQM?x@;ADk9aC!?vp!CxQ)m~ zKI;W6Rj%Xzb^QaMt9X~-gwwV?1)f*p)CQt`6uWGziu6@CL*~>#$%Tr>fR@(Bzk7-G6-`scK z6&F(9aok)Y9<;jHD-}wI{r3=m7Wvme?RTc7SsnTdi<^KO;Zj$JSy738%X?P~Jf6uu z&MdMCY~>b(Xx%jZ9Wb>7V~i)02b!n3xgL&?)Dupfcprn%(DGaDYyO3IFZ%5c_-iPw z1Wv2R)zg_)p?PJ^RR8y64jS543yVj9y?yuS+DeYz=0oobw+g-bhR48eKxoo(rGBrX( zy{JR3PUvCZ-~Ae}G@pwC&0MSs4}4E0(?)zi#|AlI9tgY1)aDxT@;4*{3W1@d`?8Nr zvk6?0lb{5NrQWUm=j6kO=-%uTxpD)}jqCKENoBnkmfWX%f3qbD5~zT_ReZ%@;kSmp zI}nZn^D$QozBPJtxiHK>TUwyM+4!>PQKQo(png<&Mf&{i+f=pFnq6Er7l<9TO+_od zD&FnH1k1E$?hYgl1o&}D1Y1E@i)YSG(QU;F5v?sW;9pCa794Y63H^(AMi$Jg>Mr+v}cl4#fkW7tfQ2N_}nsgt5# zYTNl|`wXYNdi-JDp~yrweL5C8$|Qv&D~+2UG&oMkV&9g3uyqQ5*E%b zOyIZ^vT&}~#P?he^r>DLLKB;E%D69_52|sa!+=qK8*qSD=6NU3|A!1V6~TfR_Bpgc zAV7o=$j9|>3%8@(Unlx!m``1YE1mH7JE@~ID0%#S9+kO`9`MuyLmtG-#A#>U2<)X_ z^viUs1J&2+{*PIh;C?Oh^sOv*3#tXTCw_f#wi7X%Giz%r$Ty~n!vW)7L&K4;`stqR z*=#&KnZ_V^ed1MA#OygE%(6y;7U-EwZuBiaQqT<$V&CguY-5)tZfIwQWe~*SZP+f4 zPxvq_Rt9VA+C+2*#d|LdKih|Pk7bmW+XKZwD2+5>*(Ul>|Ng+UO>o&TsRn$v{c;m8 zAH6(ztD3(x5pu5{&j(fE1=}buCyp0hW?OQ9jT2gC-xwkhnh#@zfvvjC*;vulNzt!j zELA$C{B7=cQp6M1)hN7CDd=~Hz)PUB7YCg>%LCt^O?azZ_tj+dLh0LVe_tb&yadao z)m0B2&(;^;oV>3Bwb0emp36;_m8SmDOD%fzt!hWURUdFXs~z31w7^4neWcv5CTPLLlkHh8pC>8Pi35GJ z)v0_@z6zC8go1{u@nQbl3$SpOxN!fL0OdR(s0-?dogJZ?tZ+r@0Z!RwfHt_eI5je& z{k=5j;Gn6nrT4Foy>yn*vYsr4KDg)JqW^-tw1?m~T8p2fF ziYqr`ip&ne(yc=fkk^U7{6B#r3Gq!(IH~7K4V(h;@3qYWd^bs+I~X<Y|C3Gy0j7PV->>UDVylF-vmfJGHj&|h77wPDJOZ1#s0nJJ39Ln zc`P)3ps)G{CBw z_pe8P{a|$oFk|C^^y&U!I!n6kiGj{8+G`EoRC;#PYfkPzZt>qz6>zMav)&k`3EPG%0sg_jihuF$-dWX}=PYjba#y<(*7 zdbYG3Z;3V!Dz;|z%~LZ_19~c<%wqK>S&#}trNfv8k_CgLM>*%acrXdHEuIjj=QL2A zd>sy}3AS}H+IFS_6sM-!-d|bXSHIqNK>J=F)Gf;cOt7{k$nsAJI?PE>dZZ)r6)f`O zk{RaZOk)Ry>ZL9D#LBwNw?>OAzJcy^K`w(3{PXbZHUItcKeiJ|6F-jqxeb+(` ztpyl_RJHz%(x1>%s4*rcQP1O2omJDP%r}x@;luFMplMch?4K64+3O;iQW$&~7L=+O zhOOJjxp=Vt9K?<33#ShGZydAz@f^*IPiMng#h1y^>~VwxLB5Q+v-8SSe&ZT;r-q1xBy58iVhu@O_xryI9>b~d7 z1k~A%?6rj8QJmYP`51Kr>>E-zGMv04$!=f7ZoNm(Tm3To{_P*B!~XuDGfL7YLY=zi z%6!9ze}_-}JRIy5f=^4$&81w>cW_?#6|1c@hlfp z&yo#_T$B1;Jb7I*D`D0EbX~2H6mb{>!QrcZIr&PW{hjjVX!%9sIx#aOvYvE_l`}M% z1%sYVXpx-HzSJ*;n7XnB8JQewHAhqrH#BALT|J-UJXmE3I+GLF6xjQUd?&iYWcAHj zUk}4L_YfvSD2l=>c@`Gp0$%6!nLJDs1Igdj<%fd4iKD8+Y2vgq~N?L@tHK9<^kL$T0rV|#c!Q0{E3Hu-Lm~Z zK}gG|wlm!UI74vLV$9eq5aGJvl{=10XkYv!zyldTSs|kP3dt+i%~OJat&mx>Dr8x< zY|QlSWQE=-;k_nLabmLbBHxZ70Mk(&rmc^+{EMJQSDDGDw?oPC^7zXgSd;uUHm@V- z(>7%ts-VG1_;GB?Zqiv-GTY9y83iP~$Y969Kp@w>Z}@oSnYUldcorzW=h{T|X~|Sz z6ZP(#wD^Yj`n<;0dA3zKvEO9uzv&;7?mg25px$Q}47K5RT1{f+3(2^XkG}rt?V+QS z6S4|Yc@d9Hx@hu5B!7YLZhwBZ{X92ZH3~lat@b;w)pi1-ZhsFSW{)2-+MlaL_4hgMr?B;GA0HV z$DzWxC0W=p8{|ufmRsDp7vBsaI}ta3OPacSjr_T$+iU!Gq`TVY7c|pq=XD%_3a27$ zfta?s&vQ9Mt@bJpE$LOQj84x(T-U{cJXVe$C!tN0Les!FKO*?%kZvI5#z* z+0q&C9k{(*-ft~|d6wN^fp&OcBUdij^IV}q0qgZ@?mJ}Y2iVfDYJw~K8RpI{F%2KO zFHVMC4w8V}53tw;ct6u(|QUX~vc5EpAH8U!~u{Gc3yg z*wZO&X%XDvZ_5Tg2*SpH=;q4SStX!^4tGJqV4HT+w-V@hw@7KE{=bAjQhSn>{Opgf zLT(NRU(ZB_77KkRA7DO_lRUpc29zOt(q*mk8df0X!fJY!V6=X|b@&7MPQ+Uu>1tGDw2+uJ31_+0w!pyX?9%Zmn>*>FI-Ylmbc_^q}KOLH%5ts}6 zUFqhZ`5#{saNiq=-2m9~mM*@glD2nt(7caaN%WDNFppjv#qtji%1uGOD4G%!0+1V??^}{0LD9@1>$68IXG5&Cs0Y7 zq25@r%N^uI4L*RrVPY}KoQKr%#*UJ|T&K~3Croe#%xq zF=)6ON|KMZf=yO}XWiSN=@@(skN2{UtBrF|$dd zfqsIyXF7*#rO%0BgtZB10CdkT@pdFEl(Q6L!4wZQ8&b5z1>v?#KLpYXCjyLQg!f~_ z)2Prkg*sOFq{)MaH#iSXO{Yym=8Udq4HyRlR_$VcOxKeTb*r=eqmW>{cP(^r8W5Hf zaU1p4@Vl4=+5TmOwHn8L$;2Oha3*{X%!-~(;n}roFkSmw$DT%dRRoIfKX}>GQTwc@ z%Higq>Sj=~BL_3Ud~n0g+EO>OJ#G$g2V|Dq*3D_$-O^T8{i=H+N~7qi--vXWbIP0+ zL@Q0@nd8lY^C9Z5{_$-5%M&sX?ElPDNRIxL%)V|RKlNR3QYguwiBm`7f&2PVx9*Q) zcj$wFo%#-xb9KP(_kLnp;HjD3>)5xSIofKirLPi>pZx9DqzlWRFbl}!GFM#A8U4a3jo-I!WN0M~=lV&Mzt#&!Fue4&6EtCdW{)7TW8J)5onjlBBpKAr^Elh@385E#Gr7T z5z~Um@0(+6!2yrF+`B-rb?f#NI}kHZyinK&3zUf<*G>wkmYa*?Tnqzo$0nmHYtchs zPO%<=xo%9ByVx)>;UQ9l*`-Fx47-SO$l3bSGPwn;6Sev`y6-jpzy)JyQSXE+BcDFU z%4t%bqRYRClDo-i_wd`+06PdW!@+Z(D$OZp4xkD7Mo+|1Kos$gqO8)FAIDBFoYv~D z8KM!3VxH=|%2u_A%bMn?C9#HNctCGa>@Z=~eV6OUDs$2UE7hHQvmE%-nWkvG1NaLh2(qQA~0 zbf}B`nj-uh-Nz0*a)2bm7SlMwp9$iwqekZ2g&1KudWf3t}VYbNrf(f9r zeaU3Q1$Ia?1v4w$7D&-(YrtTT-r`>6VF4}HIhf|fp=pXPcZ)rz=mRq|6$jytXb3`e z0``5|-arsuN;!0X_4JP-lJ1mCi0%e5T;!p6e-j0T2GFsIZv@#PVBDxcN-)Q-PojUPlxc5^FUJ(FBM7er@9fCLo)+O4_`ECYd(!B)Q>T}YXi(qAc@zS z{&Mq>tpa(gJ5a8C5ICff*dK7CE#eGRye*g8iXNtfMv_AeHIG8G6#2-^{zfASVuf?{ zV@H0Gv4QReb#-HoBw=qD$RrAAi@v4m9- z2)~dT5vD({^l=$pPq^M0W^v@JX7?NY&qM%>N%STf3gcpgUlr@Im%oS7!s2zlgjwC< zmUDgBm%kr4wnes)Y)&^jIGdT^B z1ur$0D*tMWadDE0!muFR{6+4Dx&ERAS$1J7Y#%YI_o)eE5>k$xh{QBK5Bt97axd%j zg5prSdMm{JpqxMIyk=4Vhq;F3R? zmMX|<=ScA^=1Q3?ZLU%HJeuDO++VE35xboo0BA)2aZKazw>=1~%dhBNOQ~~&4$dO; z+|tiSD22lS1b%Qa7j{uq>l(!e8qhfvDy%n@Pa)g7ykhx)qP#D%x{=QtC~XniTV@NZ zfWA(Q%4>Uw)^QkU0-HAS4PE`kK~Y)#-aGA#g}4_gx$7&wXD3k)x79)svMSmPx)i=A ze-a(&*j9$|fr10&rl-uR-O4EqA1Jqlg2@=sS%L;N5gs>BmrCHG88h=qBGElkmQIo} z?dERJ--pWC^#kx=0Air)^1mO)c4%EJzjp-6<)wM66NzPnu~vv8DM<2Boa!;{CPwgE z<|}#Z5Z&iE>*ee;v}{s#mpa-c{PxD!`!43;q-D>JJOi+j8s3DOhoTJ$({2ofUo(2V zPD4Biejm%#({_FwLn!swue^Ho_Qhd_()S{xXG!@CX-x6K2DXbuyj7z}@m&{MaDw1g z$0d&snR#~hJLn-)pY(A^_>kB2*7O`6M-$Ae#Fy7klyhr?61Wfc#_j?igZn(yr4=tq z^%ZQfy4qLoGK33@d`T-YIwWg)^I2lL;})%3Uc-ENo;Ani*%$6s#YBip=wk`xo8nkv zF^HR}06fnS1RO?6!lEC9bLg8p;7x(Moy$RjQ;oxX>DjH$5z|~j7H-Z3&Q(8m#9OZq z#nGq0Q7Fuo&OrgOdy>?LG#CX|$`k)?hB`%7ye=_FsJ^i%!`6+D(N6}79c)6umHlh9 zH?NVtCcAySV zgw(hHqx^hm_$Sx#Qeg<%%!a{HxPezm1C=trALJYfWK}G3VX{h##o9e>!>{ELqw-E!xn+<5MrB1MbU9Gp#25yylBseOTaEv<{$ zlAzCJ{&Ll7t+QidXv;d+D3D8r4;fE=^M`z?^xC#d|vq9#h zIjcl0(YtrcYj%#Pv+;N?=RP%yZLz5KxmdaQ;%J(ARBB*9e|TXUDdS@j*$W29Q8sQK zkzQ2BP$+SFfqYcTgAuZu9MZT}fB|*e8i@u8T;_w@;ILae`ks(oi<8(d>i`C(y04_i zz(3F3Eo->QBg#-E&*#Bti6Zct*%tn4`8T0X=2nvVujzli8PFP=N0kp1n{8=oAd zQ8eHSV!Gu6Y_T@()F%hY2-Bf~)Ew)2ig0K6cK6`ZGKihKCPXW{kp}J;58vesOQ?_* z$TTajrBV!E$0a1|N+`tReqsx0pR4b)D zghy+?7K(!eu*qnRHk}1G^RZZo;;fM|eAq~b+QyS~-_tAgYqM8Pl#^8bjLwS2eIKhX*iRflf(4Pm^w><88oO3qTe3bDB~pzoqWi zwY8fwp2z5iB|oy?Wn$e9Ncm7w)P5QYPxr6qC2kM0iN!p?sONj0w~=UoyqDl^YL-5n z=)hMNKe(&Ngl@0EHz&flnBpAN&z!EQLKSxZv>@-=*QsZkg^l_aMUk}UQJ5xSpakR< z&WGyt*~NK89VG^>nr3!w(e{Akc*&^M+RVL+n+P-boWuO22nG|ba8fTGX8^IS|Bhv! zTUiIX9-Cl#KPVM+Wazg;2})wD!tNS>BtLjvbn6IzvZ^k}FGc-)AcYWGtd-`oqW9DJ zcjt0s%|VYAj(^*)J>+|wF^VOj{`gclJ(pc=`jPZF3*r=?dJB|(3mD^E2CMffF93N3 zEjIxI_%3ikXm8=%%!jD4-g{Gl2LOSu!_35~R-`w|TA109Q$aUS8#WNW)l;DOVXh!p zk7w$kRUS_Sq&nH}aptv(ETH6vOk*}oabT7&&q`2W-fsJN8gOK8*0pwvle+1gf&ww+ z&#r-5&swcMV~3e#j^+@Je&UKC(W`085ama%&OJCZ{auJ%v|?_r05hDJF!GA+9a9au zoOjw5<2*-Qj2G^GIFi&dh2T1H{cF8&t8B8BjF`XbYIKT}OH%~?+b9O|lJjjlITnPL zJ3kN=hx)R=A)zfcuE9Difp|nto1#IE5Bf}QKzvOSU-mO6Opt&{mG&7#DRkS<^J3=Z zF@>P7J)UXi(cJFwna=6ZooV>0u6M#B>6w_O-BD0v=tq6mxN>_wN~=j}Zgi0g(?R40 zPNU9_#;=5zXx_@}5lZ}L9Gj4CD7PcSHrsMRf|$h7-jZggC9i&D2&^K^KHj4c$`4@UN|@ghHnakPDlO!EPZ!8TmKh#ca5sO_lywKicM`n%+?+iF>6$8HA?Lj zV#KT>_NY*bmX?y(HCwY)LK9R`)c!sBKF@Rh$Sb*d<>qtmJ)g7B`vj*n_lL><88|=L z80rf$jZJs8bvAE1JpN&fZmn7?uC|pytb02n;RhjqrX8b)>ok^37i*8oe0d>T^Xnea znBO(OFA=Eah9g_%VVOT^>iV11rT0B%B!itf%H&7s7uquFSckfGzZ8z%+CbqT`yxgg zyoae9an%n|LegL$`$!=Sv=={iqQje}B-}q-r)t#vPO|zkrcrs0;mTf>toTNA3#?qyP zwhZ?@sD>95c=*ak%jgHg8JOr|%4}&&SuiY?qJN$E6x^;R9FnB?;X~&F27psz#k^mB znXUhy-j(~Yri}=8pR(y6-S|Z;m^xih*w(q4;H$O_(q||E9Pr;)J zCOn=a(=4j_O{&^8pF1d|q(aa|t)`RVsuYs%QEO4Ab}K={g_l#**fM}P`lQpE>ZgNv z`~>q^=ExGYc}}%y@PkuYl5E>wQvJtKzK%e-xR0~1z#;LJco&fBqO5uY|xifx_#?;7d?P53B$DmCoP zJ@<{!{82bKIOv?_8{u^WncfUX8-|Pi_q{mz)3yU}8f;nl6i7W}Mp3?I%KJN#mdAO- z&*7oByl@`=xLKn;;IdBifGdORb)m`0sqRC{WYdhcVwoGcOSi6N^8PR9aQ_1x-=z z7Qo;;IdNir;RwP*>VdyPb>=oxE9A;N@(QJfqm2%nQQf`GTPKpu&2OxU;tj+NK+Q<9|=48qhB#E!f$JDtU%GB)r}DTbUh+@pwI=_4Nk{eM z3DG5}U}X14T}P+PLan%=Qq{+OaOzXNxUG}sH!Vw&q*v%U?!+w;>9(nEckp@x^`*1# z^=(0Y;*8e+u4y5A)fcVLgS36Xvt+}kU2@(c~3*T3Nl3g)zrcUoHea3s6^MY%M%3hXGYTTi(Gl7N(A(;MCg!$;jn-t*(#*b&>SO;?s8txd=G7apzZ5%=M zmo~JDMqIo*aPzlmxBWN3tUiHVOoZoY-gY| z-K+kboVEKEi=LS2M-{hc_BQq(M(^r|Gg$5m=P+0gf_>|RX@HGPznF7szra_;pJct5 zT(Gs5SsJ)&qG?PeF(fMH*+-@2VQfM%C>HXKn$SG@cdarD`YFj+2yhwuP_rMVE*CTV zLBpSKd*t+=6HRQ}VuCz-D|=gPgLw7r8LvWT;ku}mEW-9yX%0AWjq5qLtohrC4`DAX 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 { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', + JSON.stringify(data) ?? ''); + }); + } + + onWindowStageDestroy() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onWindowStageDestroy'); + } + + onForeground() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onForeground'); + } + + onBackground() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onBackground'); + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/pages/Index.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/pages/Index.ets new file mode 100644 index 0000000000..166366593a --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/pages/Index.ets @@ -0,0 +1,34 @@ +import hilog from '@ohos.hilog'; + +@Entry +@Component +struct Index { + aboutToAppear() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility index aboutToAppear'); + } + @State message: string = 'Hello World' + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + Button() { + Text('next page') + .fontSize(20) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .backgroundColor('#0D9FFB') + .width('35%') + .height('5%') + .onClick(()=>{ + }) + } + .width('100%') + } + .height('100%') + } + } \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts new file mode 100644 index 0000000000..92a16d84e8 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts @@ -0,0 +1,49 @@ +import hilog from '@ohos.hilog'; +import TestRunner from '@ohos.application.testRunner'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; + +var abilityDelegator = undefined +var abilityDelegatorArguments = undefined + +async function onAbilityCreateCallback() { + hilog.info(0x0000, 'testTag', '%{public}s', 'onAbilityCreateCallback'); +} + +async function addAbilityMonitorCallback(err: any) { + hilog.info(0x0000, 'testTag', 'addAbilityMonitorCallback : %{public}s', JSON.stringify(err) ?? ''); +} + +export default class OpenHarmonyTestRunner implements TestRunner { + constructor() { + } + + onPrepare() { + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner OnPrepare '); + } + + async onRun() { + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun run'); + abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + var testAbilityName = abilityDelegatorArguments.bundleName + '.TestAbility' + let lMonitor = { + abilityName: testAbilityName, + onAbilityCreate: onAbilityCreateCallback, + }; + abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback) + var cmd = 'aa start -d 0 -a TestAbility' + ' -b ' + abilityDelegatorArguments.bundleName + var debug = abilityDelegatorArguments.parameters['-D'] + if (debug == 'true') + { + cmd += ' -D' + } + hilog.info(0x0000, 'testTag', 'cmd : %{public}s', cmd); + abilityDelegator.executeShellCommand(cmd, + (err: any, d: any) => { + hilog.info(0x0000, 'testTag', 'executeShellCommand : err : %{public}s', JSON.stringify(err) ?? ''); + hilog.info(0x0000, 'testTag', 'executeShellCommand : data : %{public}s', d.stdResult ?? ''); + hilog.info(0x0000, 'testTag', 'executeShellCommand : data : %{public}s', d.exitCode ?? ''); + }) + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun end'); + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/module.json5 b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/module.json5 new file mode 100644 index 0000000000..c386019030 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/module.json5 @@ -0,0 +1,36 @@ +{ + "module": { + "name": "entry_test", + "type": "feature", + "description": "$string:module_test_desc", + "mainElement": "TestAbility", + "deviceTypes": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:test_pages", + "abilities": [ + { + "name": "TestAbility", + "srcEntry": "./ets/testability/TestAbility.ets", + "description": "$string:TestAbility_desc", + "icon": "$media:icon", + "label": "$string:TestAbility_label", + "exported": true, + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "skills": [ + { + "actions": [ + "action.system.home" + ], + "entities": [ + "entity.system.home" + ] + } + ] + } + ] + } +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/color.json b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/color.json new file mode 100644 index 0000000000..3c712962da --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/string.json b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/string.json new file mode 100644 index 0000000000..65d8fa5a7c --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_test_desc", + "value": "test ability description" + }, + { + "name": "TestAbility_desc", + "value": "the test ability" + }, + { + "name": "TestAbility_label", + "value": "test label" + } + ] +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/media/icon.png b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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.default.createHash(u);u.hash=(D,e)=>(0,u.createHash)(e).update(D).digest("hex");u.hashFile=(D,e)=>{if(i.default.existsSync(D))return(0,u.hash)(i.default.readFileSync(D,"utf-8"),e)}}(v);var g={},m={},R={};Object.defineProperty(R,"__esModule",{value:!0}),R.Unicode=void 0;class y{}R.Unicode=y,y.SPACE_SEPARATOR=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,y.ID_START=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,y.ID_CONTINUE=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,Object.defineProperty(m,"__esModule",{value:!0}),m.JudgeUtil=void 0;const I=R;m.JudgeUtil=class{static isIgnoreChar(u){return"string"==typeof u&&("\t"===u||"\v"===u||"\f"===u||" "===u||" "===u||"\ufeff"===u||"\n"===u||"\r"===u||"\u2028"===u||"\u2029"===u)}static isSpaceSeparator(u){return"string"==typeof u&&I.Unicode.SPACE_SEPARATOR.test(u)}static isIdStartChar(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||"$"===u||"_"===u||I.Unicode.ID_START.test(u))}static isIdContinueChar(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||u>="0"&&u<="9"||"$"===u||"_"===u||"‌"===u||"‍"===u||I.Unicode.ID_CONTINUE.test(u))}static isDigitWithoutZero(u){return/[1-9]/.test(u)}static isDigit(u){return"string"==typeof u&&/[0-9]/.test(u)}static isHexDigit(u){return"string"==typeof u&&/[0-9A-Fa-f]/.test(u)}};var N=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(g,"__esModule",{value:!0}),g.parseJsonText=g.parseJsonFile=void 0;const b=N(e),S=N(D),w=N(u),H=m;var x;!function(u){u[u.Char=0]="Char",u[u.EOF=1]="EOF",u[u.Identifier=2]="Identifier"}(x||(x={}));let M,T,V,G,j,J,W="start",U=[],L=0,$=1,k=0,K=!1,z="default",q="'",Z=1;function X(u,D=!1){T=String(u),W="start",U=[],L=0,$=1,k=0,G=void 0,K=D;do{M=Q(),nu[W]()}while("eof"!==M.type);return G}function Q(){for(z="default",j="",q="'",Z=1;;){J=Y();const u=Du[z]();if(u)return u}}function Y(){if(T[L])return String.fromCodePoint(T.codePointAt(L))}function uu(){const u=Y();return"\n"===u?($++,k=0):u?k+=u.length:k++,u&&(L+=u.length),u}g.parseJsonFile=function(u,D=!1,e="utf-8"){const t=b.default.readFileSync(w.default.resolve(u),{encoding:e});try{return X(t,D)}catch(D){if(D instanceof SyntaxError){const e=D.message.split("at");if(2===e.length)throw new Error(`${e[0].trim()}${S.default.EOL}\t at ${u}:${e[1].trim()}`)}throw new Error(`${u} is not in valid JSON/JSON5 format.`)}},g.parseJsonText=X;const Du={default(){switch(J){case"/":return uu(),void(z="comment");case void 0:return uu(),eu("eof")}if(!H.JudgeUtil.isIgnoreChar(J)&&!H.JudgeUtil.isSpaceSeparator(J))return Du[W]();uu()},start(){z="value"},beforePropertyName(){switch(J){case"$":case"_":return j=uu(),void(z="identifierName");case"\\":return uu(),void(z="identifierNameStartEscape");case"}":return eu("punctuator",uu());case'"':case"'":return q=J,uu(),void(z="string")}if(H.JudgeUtil.isIdStartChar(J))return j+=uu(),void(z="identifierName");throw Eu(x.Char,uu())},afterPropertyName(){if(":"===J)return eu("punctuator",uu());throw Eu(x.Char,uu())},beforePropertyValue(){z="value"},afterPropertyValue(){switch(J){case",":case"}":return eu("punctuator",uu())}throw Eu(x.Char,uu())},beforeArrayValue(){if("]"===J)return eu("punctuator",uu());z="value"},afterArrayValue(){switch(J){case",":case"]":return eu("punctuator",uu())}throw Eu(x.Char,uu())},end(){throw Eu(x.Char,uu())},comment(){switch(J){case"*":return uu(),void(z="multiLineComment");case"/":return uu(),void(z="singleLineComment")}throw Eu(x.Char,uu())},multiLineComment(){switch(J){case"*":return uu(),void(z="multiLineCommentAsterisk");case void 0:throw Eu(x.Char,uu())}uu()},multiLineCommentAsterisk(){switch(J){case"*":return void uu();case"/":return uu(),void(z="default");case void 0:throw Eu(x.Char,uu())}uu(),z="multiLineComment"},singleLineComment(){switch(J){case"\n":case"\r":case"\u2028":case"\u2029":return uu(),void(z="default");case void 0:return uu(),eu("eof")}uu()},value(){switch(J){case"{":case"[":return eu("punctuator",uu());case"n":return uu(),tu("ull"),eu("null",null);case"t":return uu(),tu("rue"),eu("boolean",!0);case"f":return uu(),tu("alse"),eu("boolean",!1);case"-":case"+":return"-"===uu()&&(Z=-1),void(z="numerical");case".":case"0":case"I":case"N":return void(z="numerical");case'"':case"'":return q=J,uu(),j="",void(z="string")}if(void 0===J||!H.JudgeUtil.isDigitWithoutZero(J))throw Eu(x.Char,uu());z="numerical"},numerical(){switch(J){case".":return j=uu(),void(z="decimalPointLeading");case"0":return j=uu(),void(z="zero");case"I":return uu(),tu("nfinity"),eu("numeric",Z*(1/0));case"N":return uu(),tu("aN"),eu("numeric",NaN)}if(void 0!==J&&H.JudgeUtil.isDigitWithoutZero(J))return j=uu(),void(z="decimalInteger");throw Eu(x.Char,uu())},zero(){switch(J){case".":case"e":case"E":return void(z="decimal");case"x":case"X":return j+=uu(),void(z="hexadecimal")}return eu("numeric",0)},decimalInteger(){switch(J){case".":case"e":case"E":return void(z="decimal")}if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},decimal(){switch(J){case".":j+=uu(),z="decimalFraction";break;case"e":case"E":j+=uu(),z="decimalExponent"}},decimalPointLeading(){if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalFraction");throw Eu(x.Char,uu())},decimalFraction(){switch(J){case"e":case"E":return j+=uu(),void(z="decimalExponent")}if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},decimalExponent(){switch(J){case"+":case"-":return j+=uu(),void(z="decimalExponentSign")}if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalExponentInteger");throw Eu(x.Char,uu())},decimalExponentSign(){if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalExponentInteger");throw Eu(x.Char,uu())},decimalExponentInteger(){if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},hexadecimal(){if(H.JudgeUtil.isHexDigit(J))return j+=uu(),void(z="hexadecimalInteger");throw Eu(x.Char,uu())},hexadecimalInteger(){if(!H.JudgeUtil.isHexDigit(J))return eu("numeric",Z*Number(j));j+=uu()},identifierNameStartEscape(){if("u"!==J)throw Eu(x.Char,uu());uu();const u=ru();switch(u){case"$":case"_":break;default:if(!H.JudgeUtil.isIdStartChar(u))throw Eu(x.Identifier)}j+=u,z="identifierName"},identifierName(){switch(J){case"$":case"_":case"‌":case"‍":return void(j+=uu());case"\\":return uu(),void(z="identifierNameEscape")}if(!H.JudgeUtil.isIdContinueChar(J))return eu("identifier",j);j+=uu()},identifierNameEscape(){if("u"!==J)throw Eu(x.Char,uu());uu();const u=ru();switch(u){case"$":case"_":case"‌":case"‍":break;default:if(!H.JudgeUtil.isIdContinueChar(u))throw Eu(x.Identifier)}j+=u,z="identifierName"},string(){switch(J){case"\\":return uu(),void(j+=function(){const u=Y(),D=function(){switch(Y()){case"b":return uu(),"\b";case"f":return uu(),"\f";case"n":return uu(),"\n";case"r":return uu(),"\r";case"t":return uu(),"\t";case"v":return uu(),"\v"}return}();if(D)return D;switch(u){case"0":if(uu(),H.JudgeUtil.isDigit(Y()))throw Eu(x.Char,uu());return"\0";case"x":return uu(),function(){let u="",D=Y();if(!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());if(u+=uu(),D=Y(),!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());return u+=uu(),String.fromCodePoint(parseInt(u,16))}();case"u":return uu(),ru();case"\n":case"\u2028":case"\u2029":return uu(),"";case"\r":return uu(),"\n"===Y()&&uu(),""}if(void 0===u||H.JudgeUtil.isDigitWithoutZero(u))throw Eu(x.Char,uu());return uu()}());case'"':case"'":if(J===q){const u=eu("string",j);return uu(),u}return void(j+=uu());case"\n":case"\r":case void 0:throw Eu(x.Char,uu());case"\u2028":case"\u2029":!function(u){console.warn(`JSON5: '${Fu(u)}' in strings is not valid ECMAScript; consider escaping.`)}(J)}j+=uu()}};function eu(u,D){return{type:u,value:D,line:$,column:k}}function tu(u){for(const D of u){if(Y()!==D)throw Eu(x.Char,uu());uu()}}function ru(){let u="",D=4;for(;D-- >0;){const D=Y();if(!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());u+=uu()}return String.fromCodePoint(parseInt(u,16))}const nu={start(){if("eof"===M.type)throw Eu(x.EOF);iu()},beforePropertyName(){switch(M.type){case"identifier":case"string":return V=M.value,void(W="afterPropertyName");case"punctuator":return void Cu();case"eof":throw Eu(x.EOF)}},afterPropertyName(){if("eof"===M.type)throw Eu(x.EOF);W="beforePropertyValue"},beforePropertyValue(){if("eof"===M.type)throw Eu(x.EOF);iu()},afterPropertyValue(){if("eof"===M.type)throw Eu(x.EOF);switch(M.value){case",":return void(W="beforePropertyName");case"}":Cu()}},beforeArrayValue(){if("eof"===M.type)throw Eu(x.EOF);"punctuator"!==M.type||"]"!==M.value?iu():Cu()},afterArrayValue(){if("eof"===M.type)throw Eu(x.EOF);switch(M.value){case",":return void(W="beforeArrayValue");case"]":Cu()}},end(){}};function iu(){const u=function(){let u;switch(M.type){case"punctuator":switch(M.value){case"{":u={};break;case"[":u=[]}break;case"null":case"boolean":case"numeric":case"string":u=M.value}return u}();if(K&&"object"==typeof u&&(u._line=$,u._column=k),void 0===G)G=u;else{const D=U[U.length-1];Array.isArray(D)?K&&"object"!=typeof u?D.push({value:u,_line:$,_column:k}):D.push(u):D[V]=K&&"object"!=typeof u?{value:u,_line:$,_column:k}:u}!function(u){if(u&&"object"==typeof u)U.push(u),W=Array.isArray(u)?"beforeArrayValue":"beforePropertyName";else{const u=U[U.length-1];W=u?Array.isArray(u)?"afterArrayValue":"afterPropertyValue":"end"}}(u)}function Cu(){U.pop();const u=U[U.length-1];W=u?Array.isArray(u)?"afterArrayValue":"afterPropertyValue":"end"}function Fu(u){const D={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(D[u])return D[u];if(u<" "){const D=u.charCodeAt(0).toString(16);return`\\x${`00${D}`.substring(D.length)}`}return u}function Eu(u,D){let e="";switch(u){case x.Char:e=void 0===D?`JSON5: invalid end of input at ${$}:${k}`:`JSON5: invalid character '${Fu(D)}' at ${$}:${k}`;break;case x.EOF:e=`JSON5: invalid end of input at ${$}:${k}`;break;case x.Identifier:k-=5,e=`JSON5: invalid identifier character at ${$}:${k}`}const t=new Au(e);return t.lineNumber=$,t.columnNumber=k,t}class Au extends SyntaxError{}var ou={},au=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),cu=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),su=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&au(D,u,e);return cu(D,u),D},lu=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(ou,"__esModule",{value:!0}),ou.isFileExists=ou.offlinePluginConversion=ou.executeCommand=ou.getNpmPath=ou.hasNpmPackInPaths=void 0;const Bu=r,du=lu(e),fu=su(u),_u=i,pu=l;ou.hasNpmPackInPaths=function(u,D){try{return require.resolve(u,{paths:[...D]}),!0}catch(u){return!1}},ou.getNpmPath=function(){const u=process.execPath;return fu.join(fu.dirname(u),_u.NPM_TOOL)},ou.executeCommand=function(u,D,e){0!==(0,Bu.spawnSync)(u,D,e).status&&(0,pu.logErrorAndExit)(`Error: ${u} ${D} execute failed.See above for details.`)},ou.offlinePluginConversion=function(u,D){return D.startsWith("file:")||D.endsWith(".tgz")?fu.resolve(u,_u.HVIGOR,D.replace("file:","")):D},ou.isFileExists=function(u){return du.default.existsSync(u)&&du.default.statSync(u).isFile()};var Ou=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),hu=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),Pu=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&Ou(D,u,e);return hu(D,u),D},vu=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(P,"__esModule",{value:!0});var gu=P.initProjectWorkSpace=void 0;const mu=Pu(e),Ru=vu(D),yu=Pu(u),Iu=v,Nu=i,bu=g,Su=l,wu=ou;let Hu,xu,Mu;function Tu(u,D,e){return void 0!==e.dependencies&&(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,D.dependencies[u])===yu.normalize(e.dependencies[u])}function Vu(){const u=yu.join(Mu,Nu.WORK_SPACE);if((0,Su.logInfoPrintConsole)("Hvigor cleaning..."),!mu.existsSync(u))return;const D=mu.readdirSync(u);if(!D||0===D.length)return;const e=yu.resolve(Mu,"node_modules","@ohos","hvigor","bin","hvigor.js");mu.existsSync(e)&&(0,wu.executeCommand)(process.argv[0],[e,"--stop-daemon"],{});try{D.forEach((D=>{mu.rmSync(yu.resolve(u,D),{recursive:!0})}))}catch(D){(0,Su.logErrorAndExit)(`The hvigor build tool cannot be installed. Please manually clear the workspace directory and synchronize the project again.\n\n Workspace Path: ${u}.`)}}gu=P.initProjectWorkSpace=function(){if(Hu=function(){const u=yu.resolve(Nu.HVIGOR_PROJECT_WRAPPER_HOME,Nu.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME);mu.existsSync(u)||(0,Su.logErrorAndExit)(`Error: Hvigor config file ${u} does not exist.`);return(0,bu.parseJsonFile)(u)}(),Mu=function(u){let D;D=function(u){let D=u.hvigorVersion;if(D.startsWith("file:")||D.endsWith(".tgz"))return!1;const e=u.dependencies,t=Object.getOwnPropertyNames(e);for(const u of t){const D=e[u];if(D.startsWith("file:")||D.endsWith(".tgz"))return!1}if(1===t.length&&"@ohos/hvigor-ohos-plugin"===t[0])return D>"2.5.0";return!1}(u)?function(u){let D=`${Nu.HVIGOR_ENGINE_PACKAGE_NAME}@${u.hvigorVersion}`;const e=u.dependencies;if(e){Object.getOwnPropertyNames(e).sort().forEach((u=>{D+=`,${u}@${e[u]}`}))}return(0,Iu.hash)(D)}(u):(0,Iu.hash)(process.cwd());return yu.resolve(Ru.default.homedir(),".hvigor","project_caches",D)}(Hu),xu=function(){const u=yu.resolve(Mu,Nu.WORK_SPACE,Nu.DEFAULT_PACKAGE_JSON);return mu.existsSync(u)?(0,bu.parseJsonFile)(u):{dependencies:{}}}(),!(0,wu.hasNpmPackInPaths)(Nu.HVIGOR_ENGINE_PACKAGE_NAME,[yu.join(Mu,Nu.WORK_SPACE)])||(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.hvigorVersion)!==xu.dependencies[Nu.HVIGOR_ENGINE_PACKAGE_NAME]||!function(){function u(u){const D=null==u?void 0:u.dependencies;return void 0===D?0:Object.getOwnPropertyNames(D).length}const D=u(Hu),e=u(xu);if(D+1!==e)return!1;for(const u in null==Hu?void 0:Hu.dependencies)if(!(0,wu.hasNpmPackInPaths)(u,[yu.join(Mu,Nu.WORK_SPACE)])||!Tu(u,Hu,xu))return!1;return!0}()){Vu();try{!function(){(0,Su.logInfoPrintConsole)("Hvigor installing...");for(const u in Hu.dependencies)Hu.dependencies[u]&&(Hu.dependencies[u]=(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.dependencies[u]));const u={dependencies:{...Hu.dependencies}};u.dependencies[Nu.HVIGOR_ENGINE_PACKAGE_NAME]=(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.hvigorVersion);const D=yu.join(Mu,Nu.WORK_SPACE);try{mu.mkdirSync(D,{recursive:!0});const e=yu.resolve(D,Nu.DEFAULT_PACKAGE_JSON);mu.writeFileSync(e,JSON.stringify(u))}catch(u){(0,Su.logErrorAndExit)(u)}(function(){const u=["config","set","store-dir",Nu.HVIGOR_PNPM_STORE_PATH],D={cwd:yu.join(Mu,Nu.WORK_SPACE),stdio:["inherit","inherit","inherit"]};(0,wu.executeCommand)(Nu.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,u,D)})(),function(){const u=["install"],D={cwd:yu.join(Mu,Nu.WORK_SPACE),stdio:["inherit","inherit","inherit"]};(0,wu.executeCommand)(Nu.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,u,D)}(),(0,Su.logInfoPrintConsole)("Hvigor install success.")}()}catch(u){Vu()}}return Mu};var Gu={};!function(t){var C=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),F=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),E=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&C(D,u,e);return F(D,u),D},A=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(t,"__esModule",{value:!0}),t.executeInstallPnpm=t.isPnpmInstalled=t.environmentHandler=t.checkNpmConifg=t.PNPM_VERSION=void 0;const o=r,a=E(e),c=A(D),s=E(u),B=i,d=l,f=ou;t.PNPM_VERSION="7.30.0",t.checkNpmConifg=function(){const u=s.resolve(B.HVIGOR_PROJECT_ROOT_DIR,".npmrc"),D=s.resolve(c.default.homedir(),".npmrc");if((0,f.isFileExists)(u)||(0,f.isFileExists)(D))return;const e=(0,f.getNpmPath)(),t=(0,o.spawnSync)(e,["config","get","prefix"],{cwd:B.HVIGOR_PROJECT_ROOT_DIR});if(0!==t.status||!t.stdout)return void(0,d.logErrorAndExit)("Error: The hvigor depends on the npmrc file. Configure the npmrc file first.");const r=s.resolve(`${t.stdout}`.replace(/[\r\n]/gi,""),".npmrc");(0,f.isFileExists)(r)||(0,d.logErrorAndExit)("Error: The hvigor depends on the npmrc file. Configure the npmrc file first.")},t.environmentHandler=function(){process.env["npm_config_update-notifier"]="false"},t.isPnpmInstalled=function(){return!!a.existsSync(B.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH)&&(0,f.hasNpmPackInPaths)("pnpm",[B.HVIGOR_WRAPPER_TOOLS_HOME])},t.executeInstallPnpm=function(){(0,d.logInfoPrintConsole)(`Installing pnpm@${t.PNPM_VERSION}...`);const u=(0,f.getNpmPath)();!function(){const u=s.resolve(B.HVIGOR_WRAPPER_TOOLS_HOME,B.DEFAULT_PACKAGE_JSON);try{a.existsSync(B.HVIGOR_WRAPPER_TOOLS_HOME)||a.mkdirSync(B.HVIGOR_WRAPPER_TOOLS_HOME,{recursive:!0});const D={dependencies:{}};D.dependencies[B.PNPM]=t.PNPM_VERSION,a.writeFileSync(u,JSON.stringify(D))}catch(D){(0,d.logErrorAndExit)(`Error: EPERM: operation not permitted,create ${u} failed.`)}}(),(0,f.executeCommand)(u,["install","pnpm"],{cwd:B.HVIGOR_WRAPPER_TOOLS_HOME,stdio:["inherit","inherit","inherit"],env:process.env}),(0,d.logInfoPrintConsole)("Pnpm install success.")}}(Gu),function(){Gu.checkNpmConifg(),Gu.environmentHandler(),Gu.isPnpmInstalled()||Gu.executeInstallPnpm();const D=gu();_(u.join(D,i.WORK_SPACE))}(); \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/hvigorfile.ts b/code/Solutions/OppTrans/BluetoothOpp/hvigorfile.ts new file mode 100644 index 0000000000..6478186902 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/hvigorfile.ts @@ -0,0 +1,2 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { appTasks } from '@ohos/hvigor-ohos-plugin'; \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/oh-package-lock.json5 b/code/Solutions/OppTrans/BluetoothOpp/oh-package-lock.json5 new file mode 100644 index 0000000000..b73134ed2b --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/oh-package-lock.json5 @@ -0,0 +1,15 @@ +{ + "lockfileVersion": 2, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "@ohos/hypium@1.0.11": "@ohos/hypium@1.0.11" + }, + "packages": { + "@ohos/hypium@1.0.11": { + "resolved": "https://repo.harmonyos.com/ohpm/@ohos/hypium/-/hypium-1.0.11.tgz", + "integrity": "sha512-KawcLnv43C3QIYv1UbDnKCFX3MohtDxGuFvzlUxT/qf2DBilR56Ws6zrj90LdH6PjloJQwOPESuBQIHBACAK7w==", + "registryType": "ohpm", + "shasum": "fa799d273fa7d921701578c5e7084849354a4af0" + } + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/oh-package.json5 b/code/Solutions/OppTrans/BluetoothOpp/oh-package.json5 new file mode 100644 index 0000000000..b40dd79c12 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/oh-package.json5 @@ -0,0 +1,11 @@ +{ + "license": "ISC", + "devDependencies": { + "@ohos/hypium": "1.0.11" + }, + "name": "bluetoothopp", + "description": "example description", + "repository": {}, + "version": "1.0.0", + "dependencies": {} +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.cer b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.cer new file mode 100644 index 0000000000..d1dbf53df2 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.cer @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIICFjCCAZugAwIBAgIIKm0UFAfvhgQwCgYIKoZIzj0EAwMwYzELMAkGA1UEBhMC +Q04xFDASBgNVBAoTC09wZW5IYXJtb255MRkwFwYDVQQLExBPcGVuSGFybW9ueSBU +ZWFtMSMwIQYDVQQDExpPcGVuSGFybW9ueSBBcHBsaWNhdGlvbiBDQTAeFw0yNDAx +MTUxMTM5MDlaFw0zNDAxMTIxMTM5MDlaMEoxFTATBgNVBAMMDGlkZV9kZW1vX2Fw +cDENMAsGA1UECxMEVW5pdDEVMBMGA1UEChMMT3JnYW5pemF0aW9uMQswCQYDVQQG +EwJDTjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbJ8AqxiUMpbrG8JV8xjckR +/syp+S491HSubkcC2Y4ZFNS9o0x3CR6eLwePBkJonLsqN9+0mxD5ggO5jHyI2h2j +UjBQMB0GA1UdDgQWBBSuhZIhWskdGLgWRk/NJ1srDk8gGDAOBgNVHQ8BAf8EBAMC +B4AwHwYDVR0jBBgwFoAU24a3IhbVC6FLt90le7nxBX2iLUcwCgYIKoZIzj0EAwMD +aQAwZgIxALroopgy9gLYTzOe/Xui/f3pL4NUbTsq0xNIWwAFrS2aCMXph25sztD/ +Q/j2VGjCNgIxAOg5w8Yxv1Zl/LpbFVHkdz6hAs8aDO5JNtOjq3k1xvgazAcBNLIm +poY3IMz99wioCA== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICYTCCAeWgAwIBAgIEHmXAPTAMBggqhkjOPQQDAwUAMGgxCzAJBgNVBAYTAkNO +MRQwEgYDVQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkgVGVh +bTEoMCYGA1UEAxMfT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gUm9vdCBDQTAeFw0y +MTAyMDIxMjE1MzJaFw00OTEyMzExMjE1MzJaMGMxCzAJBgNVBAYTAkNOMRQwEgYD +VQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkgVGVhbTEjMCEG +A1UEAxMaT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gQ0EwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAQhnu7Hna8XNa2KyqRf5+lBJScE4xqf89N0g0OuqAb2re8nGsvWkw26 +uDekfnBYicd+G3Cydqa2zFIwV7Talyg2ULW3r8KbGpyl84mJEPPRmCGJ+H9gtCsf ++OrJ4Y76LVWjYzBhMB8GA1UdIwQYMBaAFBc6EKGrGXzlAE+s0Zgnsphadw7NMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTbhrciFtUL +oUu33SV7ufEFfaItRzAMBggqhkjOPQQDAwUAA2gAMGUCMG3cXjiDmXTvf7D4Omhf +qcc2nuO+EMfWE+N9ZhBP5UhV34mAGWi3SfLU6rcV0urWEQIxAMYIb3epOnKhUrcm +Lfu1WKzFlpYQwmw73RaCHP2I3k6NcuWOYeNwWXSNZ8o0nzvaLg== +-----END CERTIFICATE----- diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.csr b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.csr new file mode 100644 index 0000000000..b88417a17c --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.csr @@ -0,0 +1,9 @@ +-----BEGIN NEW CERTIFICATE REQUEST----- +MIIBNTCB3AIBADBKMRUwEwYDVQQDDAxpZGVfZGVtb19hcHAxDTALBgNVBAsTBFVu +aXQxFTATBgNVBAoTDE9yZ2FuaXphdGlvbjELMAkGA1UEBhMCQ04wWTATBgcqhkjO +PQIBBggqhkjOPQMBBwNCAASWyfAKsYlDKW6xvCVfMY3JEf7MqfkuPdR0rm5HAtmO +GRTUvaNMdwkeni8HjwZCaJy7KjfftJsQ+YIDuYx8iNodoDAwLgYJKoZIhvcNAQkO +MSEwHzAdBgNVHQ4EFgQUroWSIVrJHRi4FkZPzSdbKw5PIBgwCgYIKoZIzj0EAwID +SAAwRQIgd8C+BuFeHDO6Me4I+XnmVqzhzXtHP0xjjXfVOM3ijz0CIQD2/ck9xxk7 +hsrqsJsS4ntCXZ1YTBfrX3VJRsCVeIDylw== +-----END NEW CERTIFICATE REQUEST----- diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p12 b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p12 new file mode 100644 index 0000000000000000000000000000000000000000..6f9010037563fdbdce8d883def74089e2494bd98 GIT binary patch literal 1128 zcmXqLVo70QWHxAG;bY^}YV&CO&dbQoxS)yoKT8wyZ-XZ0?*>hbdMHwi@+?h^(m-Kx zAQoohhU((sVq{v-xYwX@mq8j_Ju9z4q=5y3%VVI;BBFDwU+C#6rp`ZU778a^{C0Fa z&(vXJQWs!iR50LSX?S4++UbE`tK9QM+(})SEfPN3@M(_8|zZW{r)?Rq8 zxuJ>4Kw{FXwWfW$wWGH#yA3)|88K*P3@@TuoG~&r`A=T)zP)w_<*&C_2Va1-sUCR z$7i2P^Z(EseWovVpTA7_zEY!2G zE^E!R4RRkNUe+irb1j?8?_+%GoV6bR-9Y|F8&&6P^>@`@`E6fnv_h%4;zy6n(nsH9 zCv&g1vAWOWu~PYv>idTE9-^rkg_|d8i7vJ~u)>x9?dD}i9H-x1)luQQDBro(%*OiD z1e<$e&(b%0@^mpoF=joo`&)P*cnPP){H(tj+=t8DioA7ix*vU){W5zWL+sJHKg7IT z7{0L-o#n_=Hk&}NsH_u#c&GuL@bjptaA!dQVI6qL51pu44&V~R0 literal 0 HcmV?d00001 diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p7b b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p7b new file mode 100644 index 0000000000000000000000000000000000000000..643c492a22632744bc829299b23eda017b9a0e26 GIT binary patch literal 3436 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 Y&|`ld)4nL{wQT;6*WL=;nqIp6zoCm%FaQ7m literal 0 HcmV?d00001 diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/ac/15289cf25ff14683bec511de83404197 b/code/Solutions/OppTrans/BluetoothOpp/signature/material/ac/15289cf25ff14683bec511de83404197 new file mode 100644 index 0000000000..8f9f34bcea --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/signature/material/ac/15289cf25ff14683bec511de83404197 @@ -0,0 +1 @@ +y̋;6XBT \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/ce/74968108cf77439cb81ab093fafa433a b/code/Solutions/OppTrans/BluetoothOpp/signature/material/ce/74968108cf77439cb81ab093fafa433a new file mode 100644 index 0000000000000000000000000000000000000000..dad0f1022dfe14a112ce0c7f308d07c44651dec2 GIT binary patch literal 48 zcmV-00MGvb001CqPB{IQ9sa8X-X)ZA$wVPv=&8V^4>uNhe!g2Ir6~#zDP(q&EXHr) GH+z7|suOqs literal 0 HcmV?d00001 diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/0/5ab1f470e3f54dae851ceb943c486769 b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/0/5ab1f470e3f54dae851ceb943c486769 new file mode 100644 index 0000000000..7aa1f25078 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/0/5ab1f470e3f54dae851ceb943c486769 @@ -0,0 +1 @@ +;"# \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/1/9c7bb337005f47079d87ae9373bca94d b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/1/9c7bb337005f47079d87ae9373bca94d new file mode 100644 index 0000000000..edba662a6a --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/1/9c7bb337005f47079d87ae9373bca94d @@ -0,0 +1 @@ +h!Sxu 3~ \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/2/ea87333a7391483e9e84888a1b0854fb b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/2/ea87333a7391483e9e84888a1b0854fb new file mode 100644 index 0000000000..dc1575e644 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/2/ea87333a7391483e9e84888a1b0854fb @@ -0,0 +1 @@ +:ܠ&~ Ie \ No newline at end of file -- Gitee From 36647f65d4c718112f47f031d1fa75390631b632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E9=94=90?= Date: Fri, 11 Apr 2025 15:39:49 +0800 Subject: [PATCH 2/3] delete --- .../OppTrans/BluetoothOpp/.gitignore | 9 - .../BluetoothOpp/@ohos.bluetooth.d.ts | 1781 ------ .../OppTrans/BluetoothOpp/AppScope/app.json5 | 11 - .../resources/base/element/string.json | 8 - .../resources/base/media/app_icon.png | Bin 6002 -> 0 bytes .../OppTrans/BluetoothOpp/README_zh.md | 29 - .../OppTrans/BluetoothOpp/build-profile.json5 | 40 - .../OppTrans/BluetoothOpp/entry/.gitignore | 6 - .../BluetoothOpp/entry/build-profile.json5 | 14 - .../OppTrans/BluetoothOpp/entry/hvigorfile.ts | 2 - .../BluetoothOpp/entry/oh-package.json5 | 10 - .../BluetoothOpp/entry/package-lock.json | 5 - .../OppTrans/BluetoothOpp/entry/package.json | 14 - .../entry/src/main/ets/common/log.ts | 6 - .../src/main/ets/entryability/EntryAbility.ts | 42 - .../src/main/ets/pages/BleTest/BleTest.ets | 51 - .../entry/src/main/ets/pages/Index.ets | 38 - .../main/ets/pages/OppTest/OppClientTest.ets | 113 - .../main/ets/pages/OppTest/OppServerTest.ets | 123 - .../src/main/ets/pages/OppTest/OppTest.ets | 21 - .../main/ets/pages/ProfileTest/A2dpTest.ets | 68 - .../main/ets/pages/ProfileTest/HfpTest.ets | 17 - .../ets/pages/ProfileTest/ProfileTest.ets | 22 - .../main/ets/pages/SppTest/SppClientTest.ets | 79 - .../main/ets/pages/SppTest/SppServerTest.ets | 96 - .../src/main/ets/pages/SppTest/SppTest.ets | 22 - .../BluetoothOpp/entry/src/main/module.json5 | 59 - .../main/resources/base/element/color.json | 8 - .../main/resources/base/element/string.json | 20 - .../main/resources/base/media/app_icon.png | Bin 6002 -> 0 bytes .../src/main/resources/base/media/icon.png | Bin 6790 -> 0 bytes .../resources/base/profile/main_pages.json | 15 - .../main/resources/en_US/element/string.json | 20 - .../main/resources/rawfile/1MB_english.txt | 5110 ----------------- .../entry/src/main/resources/rawfile/test.jpg | Bin 286700 -> 0 bytes .../main/resources/zh_CN/element/string.json | 20 - .../src/ohosTest/ets/test/Ability.test.ets | 35 - .../entry/src/ohosTest/ets/test/List.test.ets | 5 - .../ohosTest/ets/testability/TestAbility.ets | 48 - .../ohosTest/ets/testability/pages/Index.ets | 34 - .../ets/testrunner/OpenHarmonyTestRunner.ts | 49 - .../entry/src/ohosTest/module.json5 | 36 - .../resources/base/element/color.json | 8 - .../resources/base/element/string.json | 16 - .../ohosTest/resources/base/media/icon.png | Bin 6790 -> 0 bytes .../resources/base/profile/test_pages.json | 5 - .../BluetoothOpp/hvigor/hvigor-config.json5 | 18 - .../BluetoothOpp/hvigor/hvigor-wrapper.js | 1 - .../OppTrans/BluetoothOpp/hvigorfile.ts | 2 - .../BluetoothOpp/oh-package-lock.json5 | 15 - .../OppTrans/BluetoothOpp/oh-package.json5 | 11 - .../BluetoothOpp/signature/bluetoothopp.cer | 29 - .../BluetoothOpp/signature/bluetoothopp.csr | 9 - .../BluetoothOpp/signature/bluetoothopp.p12 | Bin 1128 -> 0 bytes .../BluetoothOpp/signature/bluetoothopp.p7b | Bin 3436 -> 0 bytes .../ac/15289cf25ff14683bec511de83404197 | 1 - .../ce/74968108cf77439cb81ab093fafa433a | Bin 48 -> 0 bytes .../fd/0/5ab1f470e3f54dae851ceb943c486769 | 1 - .../fd/1/9c7bb337005f47079d87ae9373bca94d | 1 - .../fd/2/ea87333a7391483e9e84888a1b0854fb | 1 - 60 files changed, 8204 deletions(-) delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/.gitignore delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/@ohos.bluetooth.d.ts delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/AppScope/app.json5 delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/element/string.json delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/media/app_icon.png delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/README_zh.md delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/build-profile.json5 delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/.gitignore delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/build-profile.json5 delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/hvigorfile.ts delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/oh-package.json5 delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/package-lock.json delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/package.json delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/common/log.ts delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/entryability/EntryAbility.ts delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/BleTest/BleTest.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/Index.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppClientTest.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppServerTest.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppTest.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/A2dpTest.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/HfpTest.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/ProfileTest.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppClientTest.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppServerTest.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppTest.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/module.json5 delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/color.json delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/string.json delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/app_icon.png delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/icon.png delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/profile/main_pages.json delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/en_US/element/string.json delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/rawfile/1MB_english.txt delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/rawfile/test.jpg delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/zh_CN/element/string.json delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/test/Ability.test.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/test/List.test.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/TestAbility.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/pages/Index.ets delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/module.json5 delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/color.json delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/string.json delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/media/icon.png delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/profile/test_pages.json delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/hvigor/hvigor-config.json5 delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/hvigor/hvigor-wrapper.js delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/hvigorfile.ts delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/oh-package-lock.json5 delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/oh-package.json5 delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.cer delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.csr delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p12 delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p7b delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/ac/15289cf25ff14683bec511de83404197 delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/ce/74968108cf77439cb81ab093fafa433a delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/0/5ab1f470e3f54dae851ceb943c486769 delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/1/9c7bb337005f47079d87ae9373bca94d delete mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/2/ea87333a7391483e9e84888a1b0854fb diff --git a/code/Solutions/OppTrans/BluetoothOpp/.gitignore b/code/Solutions/OppTrans/BluetoothOpp/.gitignore deleted file mode 100644 index dc4e6353bf..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -/node_modules -/local.properties -/.idea -**/build -/.hvigor -.cxx -/.clangd -/.clang-format -/.clang-tidy \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/@ohos.bluetooth.d.ts b/code/Solutions/OppTrans/BluetoothOpp/@ohos.bluetooth.d.ts deleted file mode 100644 index 86a848c9c4..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/@ohos.bluetooth.d.ts +++ /dev/null @@ -1,1781 +0,0 @@ -/* - * Copyright (C) 2021-2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { AsyncCallback, Callback } from "./basic"; - -interface BluetoothOppFileHolder { - filePath?:string; - fileSize?:number; - fileFd?:number; -} -/** - * Provides methods to operate or manage Bluetooth. - * @since 7 - * @import import bluetooth from '@ohos.bluetooth' - * @syscap SystemCapability.Communication.Bluetooth.Core - */ -declare namespace bluetooth { - /** - * Obtains the Bluetooth status of a device. - * - * @return Returns the Bluetooth status, which can be {@link BluetoothState#STATE_OFF}, - * {@link BluetoothState#STATE_TURNING_ON}, {@link BluetoothState#STATE_ON}, {@link BluetoothState#STATE_TURNING_OFF}, - * {@link BluetoothState#STATE_BLE_TURNING_ON}, {@link BluetoothState#STATE_BLE_ON}, - * or {@link BluetoothState#STATE_BLE_TURNING_OFF}. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - function getState(): BluetoothState; - - /** - * Get the local device connection state to any profile of any remote device. - * - * @return One of {@link ProfileConnectionState#STATE_DISCONNECTED}, - * {@link ProfileConnectionState#STATE_CONNECTING}, {@link ProfileConnectionState#STATE_CONNECTED}, - * {@link ProfileConnectionState#STATE_DISCONNECTING}. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - function getBtConnectionState(): ProfileConnectionState; - - /** - * Starts pairing with a remote Bluetooth device. - * - * @param deviceId The address of the remote device to pair. - * @return Returns {@code true} if the pairing process is started; returns {@code false} otherwise. - * @since 7 - * @permission ohos.permission.DISCOVER_BLUETOOTH - */ - function pairDevice(deviceId: string): boolean; - - /** - * Remove a paired remote device. - * - * @param deviceId The address of the remote device to be removed. - * @return Returns {@code true} if the cancel process is started; returns {@code false} otherwise. - * @since 8 - * @permission ohos.permission.DISCOVER_BLUETOOTH - * @systemapi Hide this for inner system use - */ - function cancelPairedDevice(deviceId: string): boolean; - - /** - * Obtains the name of a peer Bluetooth device. - * - * @param deviceId The address of the remote device. - * @return Returns the device name in character string format. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function getRemoteDeviceName(deviceId: string): string; - - /** - * Obtains the class of a peer Bluetooth device. - * - * @param deviceId The address of the remote device. - * @return The class of the remote device, {@link DeviceClass}. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function getRemoteDeviceClass(deviceId: string): DeviceClass; - - /** - * Enables Bluetooth on a device. - * - * @return Returns {@code true} if Bluetooth is being enabled; returns {@code false} if an error occurs. - * @since 8 - * @permission ohos.permission.DISCOVER_BLUETOOTH - */ - function enableBluetooth(): boolean; - - /** - * Disables Bluetooth on a device. - * - * @return Returns {@code true} if Bluetooth is being disabled; returns {@code false} if an error occurs. - * @since 8 - * @permission ohos.permission.DISCOVER_BLUETOOTH - */ - function disableBluetooth(): boolean; - - /** - * Obtains the Bluetooth local name of a device. - * - * @return Returns the name the device. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function getLocalName(): string; - - /** - * Obtains the list of Bluetooth devices that have been paired with the current device. - * - * @return Returns a list of paired Bluetooth devices's address. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function getPairedDevices(): Array; - - /** - * Obtains the connection state of profile. - * - * @param profileId The profile id. - * @return Returns the connection state. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function getProfileConnState(profileId: ProfileId): ProfileConnectionState; - - /** - * Sets the confirmation of pairing with a certain device. - * - * @param device The address of the remote device. - * @param accept Indicates whether to accept the pairing request, {@code true} indicates accept or {@code false} otherwise. - * @return Returns {@code true} if the pairing confirmation is set; returns {@code false} otherwise. - * @since 8 - * @permission ohos.permission.MANAGE_BLUETOOTH - */ - function setDevicePairingConfirmation(device: string, accept: boolean): boolean; - - /** - * Sets the Bluetooth friendly name of a device. - * - * @param name Indicates a valid Bluetooth name. - * @return Returns {@code true} if the Bluetooth name is set successfully; returns {@code false} otherwise. - * @since 8 - * @permission ohos.permission.DISCOVER_BLUETOOTH - */ - function setLocalName(name: string): boolean; - - /** - * Sets the Bluetooth scan mode for a device. - * - * @param mode Indicates the Bluetooth scan mode to set, {@link ScanMode}. - * @param duration Indicates the duration in seconds, in which the host is discoverable. - * @return Returns {@code true} if the Bluetooth scan mode is set; returns {@code false} otherwise. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function setBluetoothScanMode(mode: ScanMode, duration: number): boolean; - - /** - * Obtains the Bluetooth scanning mode of a device. - * - * @return Returns the Bluetooth scanning mode, {@link ScanMode}. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function getBluetoothScanMode(): ScanMode; - - /** - * Starts scanning Bluetooth devices. - * - * @return Returns {@code true} if the scan is started successfully; returns {@code false} otherwise. - * @since 8 - * @permission ohos.permission.DISCOVER_BLUETOOTH and ohos.permission.LOCATION - */ - function startBluetoothDiscovery(): boolean; - - /** - * Stops Bluetooth device scanning. - * - * @return Returns {@code true} if scanning is stopped successfully; returns {@code false} otherwise. - * @since 8 - * @permission ohos.permission.DISCOVER_BLUETOOTH - */ - function stopBluetoothDiscovery(): boolean; - - /** - * Subscribe the event reported when a remote Bluetooth device is discovered. - * - * @param type Type of the discovering event to listen for. - * @param callback Callback used to listen for the discovering event. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function on(type: "bluetoothDeviceFind", callback: Callback>): void; - - /** - * Unsubscribe the event reported when a remote Bluetooth device is discovered. - * - * @param type Type of the discovering event to listen for. - * @param callback Callback used to listen for the discovering event. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function off(type: "bluetoothDeviceFind", callback?: Callback>): void; - - /** - * Subscribe the event reported when a remote Bluetooth device is bonded. - * - * @param type Type of the bond state event to listen for. - * @param callback Callback used to listen for the bond state event, {@link BondStateParam}. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function on(type: "bondStateChange", callback: Callback): void; - - /** - * Unsubscribe the event reported when a remote Bluetooth device is bonded. - * - * @param type Type of the bond state event to listen for. - * @param callback Callback used to listen for the bond state event. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function off(type: "bondStateChange", callback?: Callback): void; - - /** - * Subscribe the event of a pairing request from a remote Bluetooth device. - * - * @param type Type of the pairing request event to listen for. - * @param callback Callback used to listen for the pairing request event. - * @since 8 - * @permission ohos.permission.DISCOVER_BLUETOOTH - */ - function on(type: "pinRequired", callback: Callback): void; - - /** - * Unsubscribe the event of a pairing request from a remote Bluetooth device. - * - * @param type Type of the pairing request event to listen for. - * @param callback Callback used to listen for the pairing request event. - * @since 8 - * @permission ohos.permission.DISCOVER_BLUETOOTH - */ - function off(type: "pinRequired", callback?: Callback): void; - - /** - * Subscribe the event reported when the Bluetooth state changes. - * - * @param type Type of the Bluetooth state changes event to listen for. - * @param callback Callback used to listen for the Bluetooth state event. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function on(type: "stateChange", callback: Callback): void; - - /** - * Unsubscribe the event reported when the Bluetooth state changes. - * - * @param type Type of the Bluetooth state changes event to listen for. - * @param callback Callback used to listen for the Bluetooth state event. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function off(type: "stateChange", callback?: Callback): void; - - /** - * Creates a Bluetooth server listening socket. - * - * @param name Indicates the service name. - * @param option Indicates the listen parameters {@link SppOption}. - * @param callback Callback used to return a server socket ID. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function sppListen(name: string, option: SppOption, callback: AsyncCallback): void; - - /** - * Waits for a remote device to connect. - * - * @param serverSocket Indicates the server socket ID, returned by {@link sppListen}. - * @param callback Callback used to return a client socket ID. - * @since 8 - */ - function sppAccept(serverSocket: number, callback: AsyncCallback): void; - - /** - * Connects to a remote device over the socket. - * - * @param device The address of the remote device to connect. - * @param option Indicates the connect parameters {@link SppOption}. - * @param callback Callback used to return a client socket ID. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - function sppConnect(device: string, option: SppOption, callback: AsyncCallback): void; - - /** - * Disables an spp server socket and releases related resources. - * - * @param socket Indicates the server socket ID, returned by {@link sppListen}. - * @since 8 - */ - function sppCloseServerSocket(socket: number): void; - - /** - * Disables an spp client socket and releases related resources. - * - * @param socket Indicates the client socket ID, returned by {@link sppAccept} or {@link sppConnect}. - * @since 8 - */ - function sppCloseClientSocket(socket: number): void; - - /** - * Write data through the socket. - * - * @param clientSocket Indicates the client socket ID, returned by {@link sppAccept} or {@link sppConnect}. - * @param data Indicates the data to write. - * @return Returns {@code true} if the data is write successfully; returns {@code false} otherwise. - * @since 8 - */ - function sppWrite(clientSocket: number, data: ArrayBuffer): boolean; - - /** - * Subscribe the event reported when data is read from the socket. - * - * @param type Type of the spp read event to listen for. - * @param callback Callback used to listen for the spp read event. - * @since 8 - */ - function on(type: "sppRead", clientSocket: number, callback: Callback): void; - - /** - * Unsubscribe the event reported when data is read from the socket. - * - * @param type Type of the spp read event to listen for. - * @param callback Callback used to listen for the spp read event. - * @since 8 - */ - function off(type: "sppRead", clientSocket: number, callback?: Callback): void; - - /** - * Obtains the instance of profile. - * - * @param profileId The profile id.. - * @return Returns instance of profile. - * @since 8 - */ - function getProfile(profileId: ProfileId): A2dpSourceProfile | A2dpSinkProfile | AvrcpProfile | HandsFreeAudioGatewayProfile | HandsFreeUnitProfile | HidHostProfile | PanProfile | PbapClientProfile |OppProfile | PbapServerProfile ; - - /** - * Obtains the instance of profile. - * - * @param profileId The profile id.. - * @return Returns instance of profile. - * @since 9 - */ - function getProfileInst(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile | PanProfile; - - /** - * Base interface of profile. - */ - interface BaseProfile { - /** - * Obtains the connected devices list of profile. - * - * @return Returns the address of connected devices list. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - getConnectionDevices(): Array; - - /** - * Obtains the profile state of device. - * - * @param device The address of bluetooth device. - * @return Returns {@link ProfileConnectionState} of device. - * @since 8 - * @permission ohos.permission.USE_BLUETOOTH - */ - getDeviceState(device: string): ProfileConnectionState; - } - - /** - * Manager a2dp source profile. - */ - interface A2dpSourceProfile extends BaseProfile { - /** - * Connect to device with a2dp. - * - * @param device The address of the remote device to connect. - * @return Returns {@code true} if the connect is in process; returns {@code false} otherwise. - * @since 8 - * @permission permission ohos.permission.DISCOVER_BLUETOOTH - */ - connect(device: string): boolean; - - /** - * Disconnect to device with a2dp. - * - * @param device The address of the remote device to disconnect. - * @return Returns {@code true} if the disconnect is in process; returns {@code false} otherwise. - * @since 8 - * @permission permission ohos.permission.DISCOVER_BLUETOOTH - */ - disconnect(device: string): boolean; - - /** - * Subscribe the event reported when the profile connection state changes . - * - * @param type Type of the profile connection state changes event to listen for . - * @param callback Callback used to listen for event. - * @since 8 - */ - on(type: "connectionStateChange", callback: Callback): void; - - /** - * Unsubscribe the event reported when the profile connection state changes . - * - * @param type Type of the profile connection state changes event to listen for . - * @param callback Callback used to listen for event. - * @since 8 - */ - off(type: "connectionStateChange", callback?: Callback): void; - - /** - * Obtains the playing state of device. - * - * @param device The address of the remote device. - * @return Returns {@link PlayingState} of the remote device. - * @since 8 - */ - getPlayingState(device: string): PlayingState; - } - - /** - * Manager handsfree AG profile. - */ - interface HandsFreeAudioGatewayProfile extends BaseProfile { - /** - * Connect to device with hfp. - * - * @param device The address of the remote device to connect. - * @return Returns {@code true} if the connect is in process; returns {@code false} otherwise. - * @since 8 - * @permission permission ohos.permission.DISCOVER_BLUETOOTH - */ - connect(device: string): boolean; - - /** - * Disconnect to device with hfp. - * - * @param device The address of the remote device to disconnect. - * @return Returns {@code true} if the disconnect is in process; returns {@code false} otherwise. - * @since 8 - * @permission permission ohos.permission.DISCOVER_BLUETOOTH - */ - disconnect(device: string): boolean; - - /** - * Subscribe the event reported when the profile connection state changes . - * - * @param type Type of the profile connection state changes event to listen for . - * @param callback Callback used to listen for event. - * @since 8 - */ - on(type: "connectionStateChange", callback: Callback): void; - - /** - * Unsubscribe the event reported when the profile connection state changes . - * - * @param type Type of the profile connection state changes event to listen for . - * @param callback Callback used to listen for event. - * @since 8 - */ - off(type: "connectionStateChange", callback?: Callback): void; - } - - /** - * Manager hid host profile. - */ - interface HidHostProfile extends BaseProfile { - /** - * Connect to device with hid host. - * - * @param device The address of the remote device to connect. - * @return Returns {@code true} if the connect is in process; returns {@code false} otherwise. - * @since 9 - * @permission permission ohos.permission.DISCOVER_BLUETOOTH - * @systemapi Hide this for inner system use. - */ - connect(device: string): boolean; - - /** - * Disconnect to device with hid host. - * - * @param device The address of the remote device to disconnect. - * @return Returns {@code true} if the disconnect is in process; returns {@code false} otherwise. - * @since 9 - * @permission permission ohos.permission.DISCOVER_BLUETOOTH - * @systemapi Hide this for inner system use. - */ - disconnect(device: string): boolean; - - /** - * Subscribe the event reported when the profile connection state changes . - * - * @param type Type of the profile connection state changes event to listen for . - * @param callback Callback used to listen for event. - * @since 9 - */ - on(type: "connectionStateChange", callback: Callback): void; - - /** - * Unsubscribe the event reported when the profile connection state changes. - * - * @param type Type of the profile connection state changes event to listen for. - * @param callback Callback used to listen for event. - * @since 9 - */ - off(type: "connectionStateChange", callback?: Callback): void; - } - - /** - * Manager pan profile. - */ - interface PanProfile extends BaseProfile { - /** - * Disconnect to device with pan. - * - * @param device The address of the remote device to disconnect. - * @return Returns {@code true} if the disconnect is in process; returns {@code false} otherwise. - * @since 9 - * @permission permission ohos.permission.USE_BLUETOOTH - * @systemapi Hide this for inner system use. - */ - disconnect(device: string): boolean; - - /** - * Subscribe the event reported when the profile connection state changes . - * - * @param type Type of the profile connection state changes event to listen for . - * @param callback Callback used to listen for event. - * @since 9 - */ - on(type: "connectionStateChange", callback: Callback): void; - - /** - * Unsubscribe the event reported when the profile connection state changes. - * - * @param type Type of the profile connection state changes event to listen for. - * @param callback Callback used to listen for event. - * @since 9 - */ - off(type: "connectionStateChange", callback?: Callback): void; - - /** - * Enable bluetooth tethering. - * - * @param enable Specifies whether to enable tethering. The value {@code true} indicates - * that tethering is enabled, and the value {@code false} indicates that tethering is disabled. - * @since 9 - * @permission permission ohos.permission.DISCOVER_BLUETOOTH - * @systemapi Hide this for inner system use. - */ - setTethering(enable: boolean): void; - - /** - * Obtains the tethering enable or disable. - * - * @return Returns the value {@code true} is tethering is on, returns {@code false} otherwise. - * @since 9 - * @systemapi Hide this for inner system use. - */ - isTetheringOn(): boolean; - } - - /** - * Manager AvrcpProfile profile. - */ - interface AvrcpProfile extends BaseProfile { - on(type: "connectionStateChange", callback: AsyncCallback): void; - off(type: "connectionStateChange", callback?: AsyncCallback): void; - } - - /** - * Manager HandsFreeUnitProfile profile. - */ - interface HandsFreeUnitProfile extends BaseProfile { - getScoState(device: string): number; - connect(device: string): boolean; - disconnect(device: string): boolean; - on(type: "connectionStateChange", callback: AsyncCallback): void; - off(type: "connectionStateChange", callback?: AsyncCallback): void; - connectSco(device: string): boolean; - disconnectSco(device: string): boolean; - on(type: "scoStateChange", callback: AsyncCallback): void; - off(type: "scoStateChange", callback?: AsyncCallback): void; - sendDTMF(device: string, digit: number): void; - } - - /** - * Manager PbapClientProfile profile. - */ - interface PbapClientProfile extends BaseProfile { - connect(device: string): boolean; - disconnect(device: string): boolean; - on(type: "connectionStateChange", callback: AsyncCallback): void; - off(type: "connectionStateChange", callback?: AsyncCallback): void; - } - - /** - * Manager PbapServerProfile profile. - */ - interface PbapServerProfile extends BaseProfile { - disconnect(device: string): boolean; - on(type: "connectionStateChange", callback: AsyncCallback): void; - off(type: "connectionStateChange", callback?: AsyncCallback): void; - } - - /** - * Manager OppProfile profile. - */ - interface OppProfile extends BaseProfile { - on(type: "transferStateChange", callback: Callback): void; - off(type: "transferStateChange"): void; - on(type: "receiveIncomingFile", callback: Callback): void; - off(type: "receiveIncomingFile"): void; - sendFile(device: string, filePaths: Array): boolean; - setIncomingFileConfirmation(accept: boolean, fileFd:number): boolean; - getCurrentTransferInformation(): BluetoothOppTransferInformation; - cancelTransfer(): boolean; - } - - /** - * Manager A2dpSinkProfile profile. - */ - interface A2dpSinkProfile extends BaseProfile { - connect(device: string): boolean; - disconnect(device: string): boolean; - getPlayingState(device: string): number; - on(type: "connectionStateChange", callback: AsyncCallback): void; - off(type: "connectionStateChange", callback?: AsyncCallback): void; - } - - - - namespace BLE { - /** - * create a JavaScript Gatt server instance. - * - * @return Returns a JavaScript Gatt server instance {@code GattServer}. - * @since 7 - */ - function createGattServer(): GattServer; - - /** - * create a JavaScript Gatt client device instance. - * - * @param deviceId The address of the remote device. - * @return Returns a JavaScript Gatt client device instance {@code GattClientDevice}. - * @since 7 - */ - function createGattClientDevice(deviceId: string): GattClientDevice; - - /** - * Obtains the list of devices in the connected status. - * - * @return Returns the list of device address. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - function getConnectedBLEDevices(): Array; - - /** - * Starts scanning for specified BLE devices with filters. - * - * @param filters Indicates the list of filters used to filter out specified devices. - * If you do not want to use filter, set this parameter to {@code null}. - * @param options Indicates the parameters for scanning and if the user does not assign a value, the default value will be used. - * {@link ScanOptions#interval} set to 0, {@link ScanOptions#dutyMode} set to {@link SCAN_MODE_LOW_POWER} - * and {@link ScanOptions#matchMode} set to {@link MATCH_MODE_AGGRESSIVE}. - * @since 7 - * @permission ohos.permission.DISCOVER_BLUETOOTH and ohos.permission.MANAGE_BLUETOOTH and ohos.permission.LOCATION - */ - function startBLEScan(filters: Array, options?: ScanOptions): void; - - /** - * Stops BLE scanning. - * - * @since 7 - * @permission ohos.permission.DISCOVER_BLUETOOTH - */ - function stopBLEScan(): void; - - /** - * Subscribe BLE scan result. - * - * @param type Type of the scan result event to listen for. - * @param callback Callback used to listen for the scan result event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - function on(type: "BLEDeviceFind", callback: Callback>): void; - - /** - * Unsubscribe BLE scan result. - * - * @param type Type of the scan result event to listen for. - * @param callback Callback used to listen for the scan result event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - function off(type: "BLEDeviceFind", callback?: Callback>): void; - } - - /** - * Manages GATT server. Before calling an Gatt server method, you must use {@link createGattServer} to create an GattServer instance. - */ - interface GattServer { - /** - * Starts BLE advertising. - * - * @param setting Indicates the settings for BLE advertising. - * If you need to use the default value, set this parameter to {@code null}. - * @param advData Indicates the advertising data. - * @param advResponse Indicates the scan response associated with the advertising data. - * @since 7 - * @permission ohos.permission.DISCOVER_BLUETOOTH - */ - startAdvertising(setting: AdvertiseSetting, advData: AdvertiseData, advResponse?: AdvertiseData): void; - - /** - * Stops BLE advertising. - * - * @since 7 - * @permission ohos.permission.DISCOVER_BLUETOOTH - */ - stopAdvertising(): void; - - /** - * Adds a specified service to be hosted. - * - *

The added service and its characteristics are provided by the local device. - * - * @param service Indicates the service to add. - * @return Returns {@code true} if the service is added; returns {@code false} otherwise. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - addService(service: GattService): boolean; - - /** - * Removes a specified service from the list of GATT services provided by this device. - * - * @param serviceUuid Indicates the UUID of the service to remove. - * @return Returns {@code true} if the service is removed; returns {@code false} otherwise. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - removeService(serviceUuid: string): boolean; - - /** - * Closes this {@code GattServer} object and unregisters its callbacks. - * - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - close(): void; - - /** - * Sends a notification of a change in a specified local characteristic. - * - *

This method should be called for every BLE peripheral device that has requested notifications. - * - * @param deviceId Indicates the address of the BLE peripheral device to receive the notification. - * @param notifyCharacteristic Indicates the local characteristic that has changed. - * @return Returns {@code true} if the notification is sent successfully; returns {@code false} otherwise. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - notifyCharacteristicChanged(deviceId: string, notifyCharacteristic: NotifyCharacteristic): boolean; - - /** - * Sends a response to a specified read or write request to a given BLE peripheral device. - * - * @param serverResponse Indicates the response parameters {@link ServerResponse}. - * @return Returns {@code true} if the response is sent successfully; returns {@code false} otherwise. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - sendResponse(serverResponse: ServerResponse): boolean; - - /** - * Subscribe characteristic read event. - * - * @param type Type of the characteristic read event to listen for. - * @param callback Callback used to listen for the characteristic read event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - on(type: "characteristicRead", callback: Callback): void; - - /** - * Unsubscribe characteristic read event. - * - * @param type Type of the characteristic read event to listen for. - * @param callback Callback used to listen for the characteristic read event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - off(type: "characteristicRead", callback?: Callback): void; - - /** - * Subscribe characteristic write event. - * - * @param type Type of the characteristic write event to listen for. - * @param callback Callback used to listen for the characteristic write event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - on(type: "characteristicWrite", callback: Callback): void; - - /** - * Unsubscribe characteristic write event. - * - * @param type Type of the characteristic write event to listen for. - * @param callback Callback used to listen for the characteristic write event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - off(type: "characteristicWrite", callback?: Callback): void; - - /** - * Subscribe descriptor read event. - * - * @param type Type of the descriptor read event to listen for. - * @param callback Callback used to listen for the descriptor read event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - on(type: "descriptorRead", callback: Callback): void; - - /** - * Unsubscribe descriptor read event. - * - * @param type Type of the descriptor read event to listen for. - * @param callback Callback used to listen for the descriptor read event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - off(type: "descriptorRead", callback?: Callback): void; - - /** - * Subscribe descriptor write event. - * - * @param type Type of the descriptor write event to listen for. - * @param callback Callback used to listen for the descriptor write event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - on(type: "descriptorWrite", callback: Callback): void; - - /** - * Unsubscribe descriptor write event. - * - * @param type Type of the descriptor write event to listen for. - * @param callback Callback used to listen for the descriptor write event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - off(type: "descriptorWrite", callback?: Callback): void; - - /** - * Subscribe server connection state changed event. - * - * @param type Type of the connection state changed event to listen for. - * @param callback Callback used to listen for the connection state changed event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - on(type: "connectStateChange", callback: Callback): void; - - /** - * Unsubscribe server connection state changed event. - * - * @param type Type of the connection state changed event to listen for. - * @param callback Callback used to listen for the connection state changed event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - off(type: "connectStateChange", callback?: Callback): void; - } - - /** - * Manages GATT client. Before calling an Gatt client method, you must use {@link createGattClientDevice} to create an GattClientDevice instance. - */ - interface GattClientDevice { - - /** - * Connects to a BLE peripheral device. - * - *

The 'BLEConnectionStateChange' event is subscribed to return the connection state. - * - * @return Returns {@code true} if the connection process starts; returns {@code false} otherwise. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - connect(): boolean; - - /** - * Disconnects from or stops an ongoing connection to a BLE peripheral device. - * - * @return Returns {@code true} if the disconnection process starts; returns {@code false} otherwise. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - disconnect(): boolean; - - /** - * Disables a BLE peripheral device. - * - *

This method unregisters the device and clears the registered callbacks and handles. - * - * @return Returns {@code true} if the the device is disabled; returns {@code false} otherwise. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - close(): boolean; - - /** - * Obtains the name of BLE peripheral device. - * - * @return Returns a string representation of the name if obtained; - * returns {@code null} if the name fails to be obtained or the name does not exist. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - getDeviceName(callback: AsyncCallback): void; - getDeviceName(): Promise; - - /** - * Starts discovering services. - * - * @return Returns the list of services {@link GattService} of the BLE peripheral device. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - getServices(callback: AsyncCallback>): void; - getServices(): Promise>; - - /** - * Reads the characteristic of a BLE peripheral device. - * - * @param characteristic Indicates the characteristic to read. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - readCharacteristicValue(characteristic: BLECharacteristic, callback: AsyncCallback): void; - readCharacteristicValue(characteristic: BLECharacteristic): Promise; - - /** - * Reads the descriptor of a BLE peripheral device. - * - * @param descriptor Indicates the descriptor to read. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - readDescriptorValue(descriptor: BLEDescriptor, callback: AsyncCallback): void; - readDescriptorValue(descriptor: BLEDescriptor): Promise; - - /** - * Writes the characteristic of a BLE peripheral device. - * - * @param characteristic Indicates the characteristic to write. - * @return Returns {@code true} if the characteristic is written successfully; returns {@code false} otherwise. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - writeCharacteristicValue(characteristic: BLECharacteristic): boolean; - - /** - * Writes the descriptor of a BLE peripheral device. - * - * @param descriptor Indicates the descriptor to write. - * @return Returns {@code true} if the descriptor is written successfully; returns {@code false} otherwise. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - writeDescriptorValue(descriptor: BLEDescriptor): boolean; - - /** - * Get the RSSI value of this BLE peripheral device. - * - * @return Returns the RSSI value. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - getRssiValue(callback: AsyncCallback): void; - getRssiValue(): Promise; - - /** - * Set the mtu size of a BLE peripheral device. - * - * @param mtu The maximum transmission unit. - * @return Returns {@code true} if the set mtu is successfully; returns {@code false} otherwise. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - setBLEMtuSize(mtu: number): boolean; - - /** - * Enables or disables notification of a characteristic when value changed. - * - * @param enable Specifies whether to enable notification of the characteristic. The value {@code true} indicates - * that notification is enabled, and the value {@code false} indicates that notification is disabled. - * @return Returns {@code true} if notification of the characteristic is enabled or disabled; - * returns {@code false} otherwise. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - setNotifyCharacteristicChanged(characteristic: BLECharacteristic, enable: boolean): boolean; - - /** - * Subscribe characteristic value changed event. - * - * @param type Type of the characteristic value changed event to listen for. - * @param callback Callback used to listen for the characteristic value changed event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - on(type: "BLECharacteristicChange", callback: Callback): void; - - /** - * Unsubscribe characteristic value changed event. - * - * @param type Type of the characteristic value changed event to listen for. - * @param callback Callback used to listen for the characteristic value changed event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - off(type: "BLECharacteristicChange", callback?: Callback): void; - - /** - * Subscribe client connection state changed event. - * - * @param type Type of the connection state changed event to listen for. - * @param callback Callback used to listen for the connection state changed event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - on(type: "BLEConnectionStateChange", callback: Callback): void; - - /** - * Unsubscribe client connection state changed event. - * - * @param type Type of the connection state changed event to listen for. - * @param callback Callback used to listen for the connection state changed event. - * @since 7 - * @permission ohos.permission.USE_BLUETOOTH - */ - off(type: "BLEConnectionStateChange", callback?: Callback): void; - } - - /** - * Describes the Gatt service. - * - * @devices phone, tablet - * @since 7 - */ - interface GattService { - /** The UUID of a GattService instance */ - serviceUuid: string; - /** Indicates whether the GattService instance is primary or secondary. */ - isPrimary: boolean; - /** The {@link BLECharacteristic} list belongs to this GattService instance */ - characteristics: Array; - /** The list of GATT services contained in the service */ - includeServices?: Array; - } - - /** - * Describes the Gatt characteristic. - * - * @devices phone, tablet - * @since 7 - */ - interface BLECharacteristic { - /** The UUID of the {@link GattService} instance to which the characteristic belongs */ - serviceUuid: string; - /** The UUID of a BLECharacteristic instance */ - characteristicUuid: string; - /** The value of a BLECharacteristic instance */ - characteristicValue: ArrayBuffer; - /** The list of {@link BLEDescriptor} contained in the characteristic */ - descriptors: Array; - } - - /** - * Describes the Gatt descriptor. - * - * @devices phone, tablet - * @since 7 - */ - interface BLEDescriptor { - /** The UUID of the {@link GattService} instance to which the descriptor belongs */ - serviceUuid: string; - /** The UUID of the {@link BLECharacteristic} instance to which the descriptor belongs */ - characteristicUuid: string; - /** The UUID of the BLEDescriptor instance */ - descriptorUuid: string; - /** The value of the BLEDescriptor instance */ - descriptorValue: ArrayBuffer; - } - - /** - * Describes the value of the indication or notification sent by the Gatt server. - * - * @devices phone, tablet - * @since 7 - */ - interface NotifyCharacteristic { - /** The UUID of the {@link GattService} instance to which the characteristic belongs */ - serviceUuid: string; - /** The UUID of a NotifyCharacteristic instance */ - characteristicUuid: string; - /** The value of a NotifyCharacteristic instance */ - characteristicValue: ArrayBuffer; - /** - * Specifies whether to request confirmation from the BLE peripheral device (indication) or - * send a notification. Value {@code true} indicates the former and {@code false} indicates the latter. - */ - confirm: boolean; - } - - /** - * Describes the parameters of the Gatt client's characteristic read request. - * - * @devices phone, tablet - * @since 7 - */ - interface CharacteristicReadReq { - /** Indicates the address of the client that initiates the read request */ - deviceId: string; - /** The Id of the read request */ - transId: number; - /** Indicates the byte offset of the start position for reading characteristic value */ - offset: number; - /** The UUID of a CharacteristicReadReq instance */ - characteristicUuid: string; - /** The UUID of the service to which the characteristic belongs */ - serviceUuid: string; - } - - /** - * Describes the parameters of the of the Gatt client's characteristic write request. - * - * @devices phone, tablet - * @since 7 - */ - interface CharacteristicWriteReq { - /** Indicates the address of the client that initiates the write request */ - deviceId: string; - /** The Id of the write request */ - transId: number; - /** Indicates the byte offset of the start position for writing characteristic value */ - offset: number; - /** Whether this request should be pending for later operation */ - isPrep: boolean; - /** Whether the remote client need a response */ - needRsp: boolean; - /** Indicates the value to be written */ - value: ArrayBuffer; - /** The UUID of a CharacteristicWriteReq instance */ - characteristicUuid: string; - /** The UUID of the service to which the characteristic belongs */ - serviceUuid: string; - } - - /** - * Describes the parameters of the Gatt client's descriptor read request. - * - * @devices phone, tablet - * @since 7 - */ - interface DescriptorReadReq { - /** Indicates the address of the client that initiates the read request */ - deviceId: string; - /** The Id of the read request */ - transId: number; - /** Indicates the byte offset of the start position for reading characteristic value */ - offset: number; - /** The UUID of a DescriptorReadReq instance */ - descriptorUuid: string; - /** The UUID of the characteristic to which the descriptor belongs */ - characteristicUuid: string; - /** The UUID of the service to which the descriptor belongs */ - serviceUuid: string; - } - - /** - * Describes the parameters of the Gatt client's characteristic write request. - * - * @devices phone, tablet - * @since 7 - */ - interface DescriptorWriteReq { - /** Indicates the address of the client that initiates the write request */ - deviceId: string; - /** The Id of the write request */ - transId: number; - /** Indicates the byte offset of the start position for writing characteristic value */ - offset: number; - /** Whether this request should be pending for later operation */ - isPrep: boolean; - /** Whether the remote client need a response */ - needRsp: boolean; - /** Indicates the value to be written */ - value: ArrayBuffer; - /** The UUID of a DescriptorWriteReq instance */ - descriptorUuid: string; - /** The UUID of the characteristic to which the descriptor belongs */ - characteristicUuid: string; - /** The UUID of the service to which the descriptor belongs */ - serviceUuid: string; - } - - /** - * Describes the parameters of a response send by the server to a specified read or write request. - * - * @devices phone, tablet - * @since 7 - */ - interface ServerResponse { - /** Indicates the address of the client to which to send the response */ - deviceId: string; - /** The Id of the write request */ - transId: number; - /** Indicates the status of the read or write request, set this parameter to '0' in normal cases */ - status: number; - /** Indicates the byte offset of the start position for reading or writing operation */ - offset: number; - /** Indicates the value to be sent */ - value: ArrayBuffer; - } - - /** - * Describes the Gatt profile connection state. - * - * @devices phone, tablet - * @since 7 - */ - interface BLEConnectChangedState { - /** Indicates the peer device address */ - deviceId: string; - /** Connection state of the Gatt profile */ - state: ProfileConnectionState; - } - - /** - * Describes the contents of the scan results. - * - * @devices phone, tablet - * @since 7 - */ - interface ScanResult { - /** Address of the scanned device */ - deviceId: string; - /** RSSI of the remote device */ - rssi: number; - /** The raw data of broadcast packet */ - data: ArrayBuffer; - } - - /** - * Describes the settings for BLE advertising. - * - * @devices phone, tablet - * @since 7 - */ - interface AdvertiseSetting { - /** - * Minimum slot value for the advertising interval, which is {@code 32} (20 ms) - * Maximum slot value for the advertising interval, which is {@code 16777215} (10485.759375s) - * Default slot value for the advertising interval, which is {@code 1600} (1s) - */ - interval?: number; - /** - * Minimum transmission power level for advertising, which is {@code -127} - * Maximum transmission power level for advertising, which is {@code 1} - * Default transmission power level for advertising, which is {@code -7} - */ - txPower?: number; - /** Indicates whether the BLE is connectable, default is {@code true} */ - connectable?: boolean; - } - - /** - * Describes the advertising data. - * - * @devices phone, tablet - * @since 7 - */ - interface AdvertiseData { - /** The specified service UUID list to this advertisement */ - serviceUuids: Array; - /** The specified manufacturer data list to this advertisement */ - manufactureData: Array; - /** The specified service data list to this advertisement */ - serviceData: Array; - } - - /** - * Describes the manufacturer data. - * - * @devices phone, tablet - * @since 7 - */ - interface ManufactureData { - /** Indicates the manufacturer ID assigned by Bluetooth SIG */ - manufactureId: number; - /** Indicates the manufacturer data to add */ - manufactureValue: ArrayBuffer; - } - - /** - * Describes the service data. - * - * @devices phone, tablet - * @since 7 - */ - interface ServiceData { - /** Indicates the UUID of the service data to add */ - serviceUuid: string; - /** Indicates the service data to add */ - serviceValue: ArrayBuffer; - } - - /** - * Describes the criteria for filtering scanning results can be set. - * - * @devices phone, tablet - * @since 7 - */ - interface ScanFilter { - /** - * The address of a BLE peripheral device - * @since 7 - */ - deviceId?: string; - - /** - * The name of a BLE peripheral device - * @since 7 - */ - name?: string; - - /** - * The service UUID of a BLE peripheral device - * @since 7 - */ - serviceUuid?: string; - - /** - * Service UUID mask. - * @since 9 - */ - serviceUuidMask?: string; - - /** - * Service solicitation UUID mask. - * @since 9 - */ - serviceSolicitationUuid?: string; - - /** - * Service solicitation UUID mask. - * @since 9 - */ - serviceSolicitationUuidMask?: string; - - /** - * Service data. - * @since 9 - */ - serviceData?: ArrayBuffer; - - /** - * Service data mask. - * @since 9 - */ - serviceDataMask?: ArrayBuffer; - - /** - * Manufacture id. - * @since 9 - */ - manufactureId?: number; - - /** - * Manufacture data. - * @since 9 - */ - manufactureData?: ArrayBuffer; - - /** - * Manufacture data mask. - * @since 9 - */ - manufactureDataMask?: ArrayBuffer; - } - - /** - * Describes the parameters for scan. - * - * @devices phone, tablet - * @since 7 - */ - interface ScanOptions { - /** Time of delay for reporting the scan result */ - interval?: number; - /** Bluetooth LE scan mode */ - dutyMode?: ScanDuty; - /** Match mode for Bluetooth LE scan filters hardware match */ - matchMode?: MatchMode; - } - - /** - * Describes the spp parameters. - * - * @devices phone, tablet - * @since 7 - */ - interface SppOption { - /** Indicates the UUID in the SDP record. */ - uuid: string; - /** Indicates secure channel or not */ - secure: boolean; - /** Spp link type {@link SppType}*/ - type: SppType; - } - /** - * Describes the bond key param. - * - * @since 8 - */ - interface PinRequiredParam { - deviceId: string; - pinCode: string; - } - - /** -* Describes the class of a bluetooth device. -* -* @since 8 -*/ - interface DeviceClass { - majorClass: MajorClass; - majorMinorClass: MajorMinorClass; - classOfDevice: number; - } - - /** - * Describes the class of a bluetooth device. - * - * @since 8 - */ - interface BondStateParam { - deviceId: string; - state: BondState; - } - - - - /** - * Describes the opp BluetoothOppTransferInformation. - * - * @devices phone, tablet - * @since 9 - */ - interface BluetoothOppTransferInformation { - id: number; - fileName: string; - filePath: string; - mimeType: string; - deviceName: string; - deviceAddress: string; - direction: number; - status: number; - failedReason: number; - timeStamp: number; - currentBytes: number; - totalBytes: number; - } - - enum ScanDuty { - /** low power mode */ - SCAN_MODE_LOW_POWER = 0, - /** balanced power mode */ - SCAN_MODE_BALANCED = 1, - /** Scan using highest duty cycle */ - SCAN_MODE_LOW_LATENCY = 2 - } - - enum MatchMode { - /** aggressive mode */ - MATCH_MODE_AGGRESSIVE = 1, - /** sticky mode */ - MATCH_MODE_STICKY = 2 - } - - enum ProfileConnectionState { - /** the current profile is disconnected */ - STATE_DISCONNECTED = 0, - /** the current profile is being connected */ - STATE_CONNECTING = 1, - /** the current profile is connected */ - STATE_CONNECTED = 2, - /** the current profile is being disconnected */ - STATE_DISCONNECTING = 3 - } - - enum BluetoothState { - /** Indicates the local Bluetooth is off */ - STATE_OFF = 0, - /** Indicates the local Bluetooth is turning on */ - STATE_TURNING_ON = 1, - /** Indicates the local Bluetooth is on, and ready for use */ - STATE_ON = 2, - /** Indicates the local Bluetooth is turning off */ - STATE_TURNING_OFF = 3, - /** Indicates the local Bluetooth is turning LE mode on */ - STATE_BLE_TURNING_ON = 4, - /** Indicates the local Bluetooth is in LE only mode */ - STATE_BLE_ON = 5, - /** Indicates the local Bluetooth is turning off LE only mode */ - STATE_BLE_TURNING_OFF = 6 - } - - /** - * The enum of SPP type. - * - * @since 8 - */ - enum SppType { - /** RFCOMM */ - SPP_RFCOMM - } - - /** - * The enum of BR scan mode. - * - * @since 8 - */ - enum ScanMode { - /** Indicates the scan mode is none */ - SCAN_MODE_NONE = 0, - /** Indicates the scan mode is connectable */ - SCAN_MODE_CONNECTABLE = 1, - /** Indicates the scan mode is general discoverable */ - SCAN_MODE_GENERAL_DISCOVERABLE = 2, - /** Indicates the scan mode is limited discoverable */ - SCAN_MODE_LIMITED_DISCOVERABLE = 3, - /** Indicates the scan mode is connectable and general discoverable */ - SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE = 4, - /** Indicates the scan mode is connectable and limited discoverable */ - SCAN_MODE_CONNECTABLE_LIMITED_DISCOVERABLE = 5 - } - - /** - * The enum of bond state. - * - * @since 8 - */ - enum BondState { - /** Indicate the bond state is invalid */ - BOND_STATE_INVALID = 0, - /** Indicate the bond state is bonding */ - BOND_STATE_BONDING = 1, - /** Indicate the bond state is bonded*/ - BOND_STATE_BONDED = 2 - } - - /** - * The enum of major class of a bluetooth device. - * - * @since 8 - */ - enum MajorClass { - MAJOR_MISC = 0x0000, - MAJOR_COMPUTER = 0x0100, - MAJOR_PHONE = 0x0200, - MAJOR_NETWORKING = 0x0300, - MAJOR_AUDIO_VIDEO = 0x0400, - MAJOR_PERIPHERAL = 0x0500, - MAJOR_IMAGING = 0x0600, - MAJOR_WEARABLE = 0x0700, - MAJOR_TOY = 0x0800, - MAJOR_HEALTH = 0x0900, - MAJOR_UNCATEGORIZED = 0x1F00 - } - - /** - * The enum of major minor class of a bluetooth device. - * - * @since 8 - */ - enum MajorMinorClass { - // The Minor Device Class field - // Computer Major Class - COMPUTER_UNCATEGORIZED = 0x0100, - COMPUTER_DESKTOP = 0x0104, - COMPUTER_SERVER = 0x0108, - COMPUTER_LAPTOP = 0x010C, - COMPUTER_HANDHELD_PC_PDA = 0x0110, - COMPUTER_PALM_SIZE_PC_PDA = 0x0114, - COMPUTER_WEARABLE = 0x0118, - COMPUTER_TABLET = 0x011C, - - // Phone Major Class - PHONE_UNCATEGORIZED = 0x0200, - PHONE_CELLULAR = 0x0204, - PHONE_CORDLESS = 0x0208, - PHONE_SMART = 0x020C, - PHONE_MODEM_OR_GATEWAY = 0x0210, - PHONE_ISDN = 0x0214, - - // LAN/Network Access Point Major Class - NETWORK_FULLY_AVAILABLE = 0x0300, - NETWORK_1_TO_17_UTILIZED = 0x0320, - NETWORK_17_TO_33_UTILIZED = 0x0340, - NETWORK_33_TO_50_UTILIZED = 0x0360, - NETWORK_60_TO_67_UTILIZED = 0x0380, - NETWORK_67_TO_83_UTILIZED = 0x03A0, - NETWORK_83_TO_99_UTILIZED = 0x03C0, - NETWORK_NO_SERVICE = 0x03E0, - - // Audio/Video Major Class - AUDIO_VIDEO_UNCATEGORIZED = 0x0400, - AUDIO_VIDEO_WEARABLE_HEADSET = 0x0404, - AUDIO_VIDEO_HANDSFREE = 0x0408, - AUDIO_VIDEO_MICROPHONE = 0x0410, - AUDIO_VIDEO_LOUDSPEAKER = 0x0414, - AUDIO_VIDEO_HEADPHONES = 0x0418, - AUDIO_VIDEO_PORTABLE_AUDIO = 0x041C, - AUDIO_VIDEO_CAR_AUDIO = 0x0420, - AUDIO_VIDEO_SET_TOP_BOX = 0x0424, - AUDIO_VIDEO_HIFI_AUDIO = 0x0428, - AUDIO_VIDEO_VCR = 0x042C, - AUDIO_VIDEO_VIDEO_CAMERA = 0x0430, - AUDIO_VIDEO_CAMCORDER = 0x0434, - AUDIO_VIDEO_VIDEO_MONITOR = 0x0438, - AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER = 0x043C, - AUDIO_VIDEO_VIDEO_CONFERENCING = 0x0440, - AUDIO_VIDEO_VIDEO_GAMING_TOY = 0x0448, - - // Peripheral Major Class - PERIPHERAL_NON_KEYBOARD_NON_POINTING = 0x0500, - PERIPHERAL_KEYBOARD = 0x0540, - PERIPHERAL_POINTING_DEVICE = 0x0580, - PERIPHERAL_KEYBOARD_POINTING = 0x05C0, - PERIPHERAL_UNCATEGORIZED = 0x0500, - PERIPHERAL_JOYSTICK = 0x0504, - PERIPHERAL_GAMEPAD = 0x0508, - PERIPHERAL_REMOTE_CONTROL = 0x05C0, - PERIPHERAL_SENSING_DEVICE = 0x0510, - PERIPHERAL_DIGITIZER_TABLET = 0x0514, - PERIPHERAL_CARD_READER = 0x0518, - PERIPHERAL_DIGITAL_PEN = 0x051C, - PERIPHERAL_SCANNER_RFID = 0x0520, - PERIPHERAL_GESTURAL_INPUT = 0x0522, - - // Imaging Major Class - IMAGING_UNCATEGORIZED = 0x0600, - IMAGING_DISPLAY = 0x0610, - IMAGING_CAMERA = 0x0620, - IMAGING_SCANNER = 0x0640, - IMAGING_PRINTER = 0x0680, - - // Wearable Major Class - WEARABLE_UNCATEGORIZED = 0x0700, - WEARABLE_WRIST_WATCH = 0x0704, - WEARABLE_PAGER = 0x0708, - WEARABLE_JACKET = 0x070C, - WEARABLE_HELMET = 0x0710, - WEARABLE_GLASSES = 0x0714, - - // Minor Device Class field - Toy Major Class - TOY_UNCATEGORIZED = 0x0800, - TOY_ROBOT = 0x0804, - TOY_VEHICLE = 0x0808, - TOY_DOLL_ACTION_FIGURE = 0x080C, - TOY_CONTROLLER = 0x0810, - TOY_GAME = 0x0814, - - // Minor Device Class field - Health - HEALTH_UNCATEGORIZED = 0x0900, - HEALTH_BLOOD_PRESSURE = 0x0904, - HEALTH_THERMOMETER = 0x0908, - HEALTH_WEIGHING = 0x090C, - HEALTH_GLUCOSE = 0x0910, - HEALTH_PULSE_OXIMETER = 0x0914, - HEALTH_PULSE_RATE = 0x0918, - HEALTH_DATA_DISPLAY = 0x091C, - HEALTH_STEP_COUNTER = 0x0920, - HEALTH_BODY_COMPOSITION_ANALYZER = 0x0924, - HEALTH_PEAK_FLOW_MOITOR = 0x0928, - HEALTH_MEDICATION_MONITOR = 0x092C, - HEALTH_KNEE_PROSTHESIS = 0x0930, - HEALTH_ANKLE_PROSTHESIS = 0x0934, - HEALTH_GENERIC_HEALTH_MANAGER = 0x0938, - HEALTH_PERSONAL_MOBILITY_DEVICE = 0x093C, - } - - /** - * Profile state change parameters. - * - * @since 8 - */ - interface StateChangeParam { - /** The address of device */ - deviceId: string; - - /** Profile state value */ - state: ProfileConnectionState; - } - - /** - * The enum of a2dp playing state. - * - * @since 8 - */ - enum PlayingState { - STATE_NOT_PLAYING, - STATE_PLAYING, - } - - /** - * The enum of profile id. - */ - enum ProfileId { - /** - * @since 8 - */ - PROFILE_A2DP_SOURCE = 1, - - /** - * @since 8 - */ - PROFILE_HANDS_FREE_AUDIO_GATEWAY = 4, - - /** - * @since 9 - */ - PROFILE_HID_HOST = 6, - - /** - * @since 9 - */ - PROFILE_PAN_NETWORK = 7, - - /** - * @since 9 - */ - PROFILE_OPP = 10, - } -} - -export default bluetooth; diff --git a/code/Solutions/OppTrans/BluetoothOpp/AppScope/app.json5 b/code/Solutions/OppTrans/BluetoothOpp/AppScope/app.json5 deleted file mode 100644 index 7f40701ae9..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/AppScope/app.json5 +++ /dev/null @@ -1,11 +0,0 @@ -{ - "app": { - "bundleName": "com.example.bluetoothopp", - "vendor": "example", - "versionCode": 1000001, - "versionName": "1.0.1", - "icon": "$media:app_icon", - "label": "$string:app_name", - "distributedNotificationEnabled": true - } -} diff --git a/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/element/string.json b/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/element/string.json deleted file mode 100644 index 63474f9804..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/element/string.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "string": [ - { - "name": "app_name", - "value": "蓝牙文件传输" - } - ] -} diff --git a/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/media/app_icon.png b/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/media/app_icon.png deleted file mode 100644 index 380e486977b2d0259fcb3aed0f54a5e0a98ed528..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6002 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 diff --git a/code/Solutions/OppTrans/BluetoothOpp/README_zh.md b/code/Solutions/OppTrans/BluetoothOpp/README_zh.md deleted file mode 100644 index bb712cdfb2..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/README_zh.md +++ /dev/null @@ -1,29 +0,0 @@ -### 介绍 - -本示例提供了蓝牙Opp文件传输功能,可实现不同设备通间蓝牙传输文件。 - -### 使用说明 - -1. 在opp接受服务端,点击"Opp接收服务端"按钮进入接收服务页面,点击"opp开启接收文件"按钮开始监听文件传输。 -2. 在opp发送服务端,点击已配对设备列表中设备名称(此时选中的设备背景色由黄色变成绿色),在第二个输入框中输入需要传输的文件名称。 -3. 在opp发送服务端,点击"oppSendFile"按钮传输文件。 -4. 在opp接收服务端,等待接收文件弹框弹出,点击"接收"按钮,开始接收文件。 - -注:
**1、两设备需处于已配对状态;
-2、opp发送端文件必须在"/data/bluetooth/log"目录下;
-3、opp接收端接收的文件在"/data/service/el1/public/bluetooth/"目录下** - - -### 相关权限 - -不涉及。 - -### 约束与限制 - -1. **需要将工程下"@ohos.bluetooth.d.ts"声明文件复制到SKD中"DevEco3.1.0.500_3.2.12.2\9\ets\api"目录下,替换原来的"@ohos.bluetooth.d.ts"声明文件** - -2. 本示例支持标准系统上运行,支持设备:7885; - -3. 本示例仅支持API9版本SDK,版本号:3.2.12.2; - -4. 本示例需要使用DevEco Studio 3.1 Canary1 (Build Version: 3.1.0.100)才可编译运行; \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/build-profile.json5 b/code/Solutions/OppTrans/BluetoothOpp/build-profile.json5 deleted file mode 100644 index 0450fa3395..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/build-profile.json5 +++ /dev/null @@ -1,40 +0,0 @@ -{ - "app": { - "signingConfigs": [ - { - "name": "default", - "material": { - "certpath": "signature/bluetoothopp.cer", - "storePassword": "0000001BFA170ECDD2893BC2E4C652C7CC52A7D32971AAB3D0CFBC49DB913351B490D5EA1DAFCB759F507B", - "keyAlias": "debugKey", - "keyPassword": "0000001B90B4FD781921F33DB014FD33627C8209A428627667563728085601D62CAFD8B6EEB538D6FE6ADE", - "profile": "signature/bluetoothopp.p7b", - "signAlg": "SHA256withECDSA", - "storeFile": "signature/bluetoothopp.p12" - } - } - ], - "products": [ - { - "name": "default", - "signingConfig": "default", - "compileSdkVersion": 10, - "compatibleSdkVersion": 9 - } - ] - }, - "modules": [ - { - "name": "entry", - "srcPath": "./entry", - "targets": [ - { - "name": "default", - "applyToProducts": [ - "default" - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/.gitignore b/code/Solutions/OppTrans/BluetoothOpp/entry/.gitignore deleted file mode 100644 index e2713a2779..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/node_modules -/oh_modules -/.preview -/build -/.cxx -/.test \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/build-profile.json5 b/code/Solutions/OppTrans/BluetoothOpp/entry/build-profile.json5 deleted file mode 100644 index 2c53bb59be..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/build-profile.json5 +++ /dev/null @@ -1,14 +0,0 @@ -{ - "apiType": 'stageMode', - "buildOption": { - }, - "targets": [ - { - "name": "default", - "runtimeOS": "OpenHarmony" - }, - { - "name": "ohosTest", - } - ] -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/hvigorfile.ts b/code/Solutions/OppTrans/BluetoothOpp/entry/hvigorfile.ts deleted file mode 100644 index 80e4ec5b81..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/hvigorfile.ts +++ /dev/null @@ -1,2 +0,0 @@ -// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. -export { hapTasks } from '@ohos/hvigor-ohos-plugin'; diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/oh-package.json5 b/code/Solutions/OppTrans/BluetoothOpp/entry/oh-package.json5 deleted file mode 100644 index 225946cb11..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/oh-package.json5 +++ /dev/null @@ -1,10 +0,0 @@ -{ - "license": "", - "devDependencies": {}, - "author": "", - "name": "entry", - "description": "Please describe the basic information.", - "main": "", - "version": "1.0.0", - "dependencies": {} -} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/package-lock.json b/code/Solutions/OppTrans/BluetoothOpp/entry/package-lock.json deleted file mode 100644 index 15bc7145be..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/package-lock.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "entry", - "version": "1.0.0", - "lockfileVersion": 1 -} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/package.json b/code/Solutions/OppTrans/BluetoothOpp/entry/package.json deleted file mode 100644 index c7685ac4e7..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "license": "ISC", - "devDependencies": {}, - "name": "entry", - "ohos": { - "org": "huawei", - "directoryLevel": "module", - "buildTool": "hvigor" - }, - "description": "example description", - "repository": {}, - "version": "1.0.0", - "dependencies": {} -} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/common/log.ts b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/common/log.ts deleted file mode 100644 index 64bf48a9fb..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/common/log.ts +++ /dev/null @@ -1,6 +0,0 @@ -import promptAction from '@ohos.promptAction'; - -export function testLog(logStr: string) { - promptAction.showToast({ message: logStr }) - console.log(logStr) -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/entryability/EntryAbility.ts b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/entryability/EntryAbility.ts deleted file mode 100644 index b471280e6d..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/entryability/EntryAbility.ts +++ /dev/null @@ -1,42 +0,0 @@ -import UIAbility from '@ohos.app.ability.UIAbility'; -import hilog from '@ohos.hilog'; -import window from '@ohos.window'; - -export default class EntryAbility extends UIAbility { - onCreate(want, launchParam) { - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); - globalThis.context = this.context; - } - - onDestroy() { - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); - } - - onWindowStageCreate(windowStage: window.WindowStage) { - // Main window is created, set main page for this ability - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); - - windowStage.loadContent('pages/Index', (err, data) => { - if (err.code) { - hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); - return; - } - hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); - }); - } - - onWindowStageDestroy() { - // Main window is destroyed, release UI related resources - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); - } - - onForeground() { - // Ability has brought to foreground - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); - } - - onBackground() { - // Ability has back to background - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); - } -} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/BleTest/BleTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/BleTest/BleTest.ets deleted file mode 100644 index 7299a5e1c3..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/BleTest/BleTest.ets +++ /dev/null @@ -1,51 +0,0 @@ -import promptAction from '@ohos.promptAction'; -import bluetoothManager from '@ohos.bluetoothManager'; - -function string2ArrayBuffer(str) { - let array = new Uint8Array(str.length); - for (var i = 0; i < str.length; i++) { - array[i] = str.charCodeAt(i); - } - return array.buffer -} - -@Entry -@Component -struct BleTest { - build() { - Row() { - Column() { - Button('BleScan').fontSize(20).onClick(() => { - let scanFilter: bluetoothManager.ScanFilter = { - "deviceId": "11:22:33:44:55:66", - "name": "OHOS", - "serviceUuid": "00001234-0000-1000-8000-00805F9B34FB", - "serviceUuidMask": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF", - "serviceSolicitationUuid": "00001234-0000-1000-8000-00805F9B34FB", - "serviceSolicitationUuidMask": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF", - "serviceData": string2ArrayBuffer("01234FFFFFF-FFFFF-FFFFF"), - "serviceDataMask": string2ArrayBuffer("01234FFFFFF-FFFFF-FFFFF"), - "manufactureId": 12345, - "manufactureData": string2ArrayBuffer("01234jjjjjjjj-jjjjjj"), - "manufactureDataMask": string2ArrayBuffer("01234jjjjjjjj-jjjjjj"), - } - let scanOption: bluetoothManager.ScanOptions = { - interval: 500, - dutyMode: bluetoothManager.ScanDuty.SCAN_MODE_LOW_POWER, - matchMode: bluetoothManager.MatchMode.MATCH_MODE_AGGRESSIVE - } - let curScanFilters = []; - curScanFilters.push(scanFilter); - try { - bluetoothManager.BLE.startBLEScan(curScanFilters, scanOption); - } catch (err) { - console.log("error " + err.code + ", errorMessage " + err.message) - } - promptAction.showToast({ message: "执行成功 " }) - }).margin(5).width('100%') - } - .width('100%') - } - .height('100%') - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/Index.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/Index.ets deleted file mode 100644 index 97236b46b3..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/Index.ets +++ /dev/null @@ -1,38 +0,0 @@ -import router from '@ohos.router'; -import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; - -@Entry -@Component -struct Index { - - aboutToAppear(){ - let abilityMgr = abilityAccessCtrl.createAtManager(); - abilityMgr.requestPermissionsFromUser(globalThis.context, ["ohos.permission.LOCATION", "ohos.permission.APPROXIMATELY_LOCATION",'ohos.permission.ACCESS_BLUETOOTH'], (error, result) => { - console.log("bluetooth requestPermissionsFromUser, err: "+JSON.stringify(error)+" ; result: "+JSON.stringify(result)) - }) - } - - build() { - Row() { - Column() { -// Button('Spp命令传输测试').fontSize(40).onClick(() => { -// router.push({ url: 'pages/SppTest/SppTest' }) -// }).margin(10) - - Button('Opp文件传输').fontSize(40).onClick(() => { - router.push({ url: 'pages/OppTest/OppTest' }) - }).margin(10) - -// Button('BleTest').fontSize(40).onClick(() => { -// router.push({ url: 'pages/BleTest/BleTest' }) -// }).margin(10) -// -// Button('ProfileTest').fontSize(40).onClick(() => { -// router.push({ url: 'pages/ProfileTest/ProfileTest' }) -// }).margin(10) - } - .width('100%') - } - .height('100%') - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppClientTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppClientTest.ets deleted file mode 100644 index e580396c01..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppClientTest.ets +++ /dev/null @@ -1,113 +0,0 @@ -import bluetooth from '@ohos.bluetooth'; -import { testLog } from '../../common/log' - -@Entry -@Component -struct Client { - private oppProfile: bluetooth.OppProfile = undefined; - private pairDevices: {id: string, name: string}[] = []; - @State serverMac: string = ""; - private fileName: string = ""; - private fileType: string = "jpg" - - aboutToAppear(){ - try{ - // @ts-ignore - this.oppProfile = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_OPP); - testLog("get opp profile success"); - }catch (error){ - testLog("get opp profile fail, err: "+JSON.stringify(error)); - } - this.getPairDevice(); - } - - getPairDevice(){ - let macs = bluetooth.getPairedDevices(); - console.log("getPairDevice macs: "+JSON.stringify(macs)); - for (let i = 0; i < macs.length; i++) { - let name = bluetooth.getRemoteDeviceName(macs[i]); - console.log("getPairDevice name: "+JSON.stringify(name)); - this.pairDevices.push({ id: macs[i], name: name }); - } - console.log("getPairDevice pairDevices: "+JSON.stringify(this.pairDevices)); - } - - build() { - Row() { - Column({space: 20}) { - - Column(){ - Text("已配对设备列表:(点击选择设备)") - .fontSize(20) - .fontWeight(FontWeight.Bold) - - Scroll(){ - List({space: 5}){ - ForEach(this.pairDevices, (item: {id: string, name: string}) => { - ListItem(){ - Text(item.name) - .fontSize(25) - .width("80%") - .margin({left: '10%'}) - .backgroundColor(this.serverMac === item.id ? "#00FF00" : "#FFFF00") - .border({ - radius: 5 - }) - } - .onClick(() => { - this.serverMac = item.id; - }) - }) - } - } - .height("30%") - .width("80%") - } - - Column(){ - Text("已选择的设备的蓝牙mac地址:").fontSize(17).fontWeight(FontWeight.Bold) - Text(this.serverMac) - .fontSize("25") - .width("70%") - .borderRadius(5) - .backgroundColor(Color.Grey) - } - - Column(){ - Text("请输入需要发送的文件名称,如:test.txt").fontSize(13).fontWeight(FontWeight.Bold) - Text("注:文件必须在/data/bluetooth/log/目录下").fontSize(13).fontWeight(FontWeight.Bold) - TextInput({ placeholder: "文件名称" }) - .fontSize("17vp") - .onChange((str) => { - if(str){ - let strs = str.split("."); - this.fileName = str; - this.fileType = strs[1]; - } - }).width("70%").borderRadius(1) - } - - Button('oppSendFile').fontSize(20).onClick(() => { - - try { - if (this.serverMac && this.fileName) { - let result = this.oppProfile.sendFile(this.serverMac, [{ - filePath:"/data/bluetooth/log/"+this.fileName, - fileSize:0, - fileFd:1, - }]) - testLog("opp发送文件成功! result: "+JSON.stringify(result)); - } else { - testLog("请选择设备并输入文件名"); - } - } catch (error) { - testLog("opp发送文件失败, err: "+JSON.stringify(error)); - } - }).width('60%') - - } - .width('100%') - } - .height('100%') - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppServerTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppServerTest.ets deleted file mode 100644 index 8eea5b9652..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppServerTest.ets +++ /dev/null @@ -1,123 +0,0 @@ -import bluetooth from '@ohos.bluetooth'; -import { testLog } from '../../common/log' - -const TAG = "opp_server" - -@Entry -@Component -struct Client { - private oppProfile: bluetooth.OppProfile = undefined; - @State showProgress: boolean = false; - @State curProgress: number = 0; - private deviceName: string = ""; - private fileName: string = ""; - private receiveDialogController: CustomDialogController = new CustomDialogController({ - builder: ReceiveCustomDialog({ - deviceName: this.deviceName, - fileName: this.fileName, - confirm: () => { - try{ - this.oppProfile.setIncomingFileConfirmation(true,1); - this.receiveDialogController.close(); - this.onStateChange(); - console.log(TAG, "receive success"); - }catch (error){ - console.log(TAG, "receive fail, err: "+JSON.stringify(error)); - } - }, - cancel: () => { - try{ - this.oppProfile.setIncomingFileConfirmation(false,1); - this.receiveDialogController.close(); - console.log(TAG, "reject receive success"); - }catch (error){ - console.log(TAG, "reject receive fail, err: "+JSON.stringify(error)); - } - } - }) - }) - - aboutToAppear(){ - try{ - // @ts-ignore - this.oppProfile = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_OPP) - testLog("get opp profile success"); - }catch (error){ - testLog("get opp profile fail, err: "+JSON.stringify(error)); - } - } - - onStateChange(){ - try{ - this.oppProfile.on("transferStateChange", (stateInformation) => { - console.log(TAG, "transferStateChange enter"); - this.showProgress = true; - this.curProgress = (stateInformation.currentBytes * 100) / stateInformation.totalBytes; - if(this.curProgress === 100){ - this.showProgress = false; - testLog("接收文件成功,文件存放路径:"+JSON.stringify(stateInformation.filePath)); - } - }) - }catch (error){ - console.log(TAG, "on transferStateChange fail, err: "+JSON.stringify(error)); - } - } - - build() { - Row() { - Column({space: 100}) { - - Button('opp开启接收文件').fontSize(20).onClick(() => { - try { - this.oppProfile.on("receiveIncomingFile", (information) => { - this.deviceName = information.deviceName; - this.fileName = information.fileName; - this.receiveDialogController.open(); - }) - } catch (error) { - testLog("opp开启接收文件失败,err: "+JSON.stringify(error)); - } - }).width('60%') - - if(this.showProgress){ - Row({space: 5}){ - Progress({value: this.curProgress, total: 100, type: ProgressType.Linear}) - .style({strokeWidth: 10}) - - Text(this.curProgress+"%") - .fontSize(30) - } - } - - } - .width('100%') - } - .height('100%') - } -} - -@CustomDialog -struct ReceiveCustomDialog { - controller: CustomDialogController - deviceName: string - fileName: string - cancel: () => void - confirm: () => void - - build() { - Column() { - Text("是否接收来自 "+this.deviceName+" 的文件").fontSize(20).margin({ top: 10, bottom: 10 }) - Text(this.fileName).fontSize(16).margin({ bottom: 10 }) - Flex({ justifyContent: FlexAlign.SpaceAround }) { - Button('拒接') - .onClick(() => { - this.cancel() - }) - Button('接收') - .onClick(() => { - this.confirm() - }) - }.margin({ bottom: 10 }) - } - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppTest.ets deleted file mode 100644 index ee3428f1cf..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppTest.ets +++ /dev/null @@ -1,21 +0,0 @@ -import router from '@ohos.router'; -@Entry -@Component -struct SppTest { - - build() { - Row() { - Column() { - Button('Opp接收服务端').fontSize(30).onClick(() => { - router.push({url: 'pages/OppTest/OppServerTest'}) - }).margin(20) - - Button('Opp发送服务端').fontSize(30).onClick(() => { - router.push({ url: 'pages/OppTest/OppClientTest' }) - }) - } - .width('100%') - } - .height('100%') - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/A2dpTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/A2dpTest.ets deleted file mode 100644 index 3ec923791e..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/A2dpTest.ets +++ /dev/null @@ -1,68 +0,0 @@ -import { testLog } from '../../common/log'; -import promptAction from '@ohos.promptAction'; -import bluetoothManager from '@ohos.bluetoothManager'; - -@Entry -@Component -struct A2dpTest { - private address: string = "08:F4:58:65:91:09" - private instance = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_A2DP_SOURCE) as bluetoothManager.A2dpSourceProfile - - build() { - Row() { - Column() { - Button('on').fontSize(20).onClick(() => { - this.instance.on('connectionStateChange', (param) => { - testLog("connectionStateChange deviceId: " + param.deviceId + " ,state: " + param.state) - }) - }).margin(5).width('100%') - - Button('off').fontSize(20).onClick(() => { - this.instance.off('connectionStateChange', (param) => { - testLog("connectionStateChange deviceId: " + param.deviceId + " ,state: " + param.state) - }) - }).margin(5).width('100%') - - - Button('Connect').fontSize(20).onClick(() => { - try { - this.instance.connect(this.address); - testLog("Connect success") - } catch (err) { - testLog("Connect crash ") - } - }).margin(5).width('100%') - - Button('DisConnect').fontSize(20).onClick(() => { - try { - this.instance.disconnect(this.address); - testLog("DisConnect success") - } catch (err) { - testLog("DisConnect crash ") - } - }).margin(5).width('100%') - - Button('GetDeviceState').fontSize(20).onClick(() => { - try { - let state = this.instance.getDeviceState(this.address); - testLog("GetDeviceState: " + state) - } catch (err) { - testLog("GetDeviceState crash ") - } - }).margin(5).width('100%') - - Button('GetConnectDevices').fontSize(20).onClick(() => { - try { - let devices = this.instance.getConnectionDevices(); - testLog("GetConnectDevices: " + devices) - } catch (err) { - testLog("GetConnectDevices crash ") - } - }).margin(5).width('100%') - - } - .width('100%') - } - .height('100%') - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/HfpTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/HfpTest.ets deleted file mode 100644 index ea7bf1481b..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/HfpTest.ets +++ /dev/null @@ -1,17 +0,0 @@ -@Entry -@Component -struct HfpTest { - @State message: string = 'Hello World' - - build() { - Row() { - Column() { - Text(this.message) - .fontSize(50) - .fontWeight(FontWeight.Bold) - } - .width('100%') - } - .height('100%') - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/ProfileTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/ProfileTest.ets deleted file mode 100644 index 9923623a2a..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/ProfileTest.ets +++ /dev/null @@ -1,22 +0,0 @@ -import router from '@ohos.router'; -@Entry -@Component -struct ProfileTest { - @State message: string = 'Hello World' - - build() { - Row() { - Column() { - Button('A2dpTest').fontSize(50).onClick(() => { - router.push({url: 'pages/ProfileTest/A2dpTest'}) - }).margin(5) - - Button('HfpTest').fontSize(50).onClick(() => { - router.push({ url: 'pages/ProfileTest/HfpTest' }) - }) - } - .width('100%') - } - .height('100%') - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppClientTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppClientTest.ets deleted file mode 100644 index 3d28dee39e..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppClientTest.ets +++ /dev/null @@ -1,79 +0,0 @@ -import bluetoothManager from '@ohos.bluetoothManager'; -import { testLog } from '../../common/log' - -@Entry -@Component -struct Client { - private clientNumber: number = -1; - private serverMac: string = "08:FB:EA:19:58:31"; - private uuid: string = "22001101-0000-1000-8000-00805f9b34fb"; - private message: string = "test message"; - - build() { - Row() { - Column() { - Text("请输入需要连接的蓝牙mac地址,默认为:08:FB:EA:19:58:31").fontSize(20).maxLines(3).backgroundColor(Color.Gray) - TextInput({ placeholder: "mac地址" }) - .fontSize("17vp") - .onChange((str) => { - if(str){ - this.serverMac = str; - } - }).margin(10).width("70%").borderRadius(1) - - Text("请输入需要发送的命令,默认为:test message").fontSize(20).maxLines(3).backgroundColor(Color.Gray) - TextInput({ placeholder: "命令" }) - .fontSize("17vp") - .onChange((str) => { - if(str){ - this.message = str; - } - }).width("70%").borderRadius(1) - - Button('spp连接接收服务端').fontSize(20).onClick(() => { - try { - bluetoothManager.sppConnect(this.serverMac, { - uuid: this.uuid, - secure: false, - type: 0 - }, (code, clientId) => { - if (code.code) { - testLog("spp连接接收服务端失败, err: " + code.code) - } else { - this.clientNumber = clientId; - testLog("spp连接接收服务端成功!"); - } - }) - } catch (err) { - testLog("sppConnect crash") - } - - }).margin(10).width('100%') - - Button('spp发送命令').fontSize(20).onClick(() => { - let array = new Uint8Array(this.message.length); - for (var i = 0; i < this.message.length; i++) { - array[i] = this.message.charCodeAt(i); - } - try { - bluetoothManager.sppWrite(this.clientNumber, array.buffer); - testLog("spp发送命令成功!"); - } catch (err) { - testLog("spp发送命令失败,err: "+JSON.stringify(err)) - } - }).margin(10).width('100%') - - Button('spp关闭服务').fontSize(20).onClick(() => { - try{ - bluetoothManager.sppCloseClientSocket(this.clientNumber); - testLog("spp关闭服务成功!"); - }catch(error){ - testLog("spp关闭服务失败,err: "+JSON.stringify(error)); - } - }).margin(10).width('100%') - } - .width('100%') - } - .height('100%') - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppServerTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppServerTest.ets deleted file mode 100644 index 601caed075..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppServerTest.ets +++ /dev/null @@ -1,96 +0,0 @@ -import bluetoothManager from '@ohos.bluetoothManager'; -import { testLog } from '../../common/log' - -@Entry -@Component -struct Server { - private uuid: string = "22001101-0000-1000-8000-00805f9b34fb"; - private serverNumber: number = -1; - private clientSocketId: number = -1; - @State receiveMessage: string = ""; - - build() { - Row() { - Column() { - Button('spp创建接收服务').fontSize(20).onClick(() => { - try { - bluetoothManager.setBluetoothScanMode(bluetoothManager.ScanMode.SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, 0); - bluetoothManager.sppListen('server', { - uuid: this.uuid, - secure: false, - type: 0 - }, (code, serverSocketId) => { - if (code.code) { - testLog("spp创建接收服务失败,err: " + JSON.stringify(code)); - } else { - this.serverNumber = serverSocketId; - testLog("spp创建接收服务成功!") - } - }) - } catch (err) { - testLog("spp创建接收服务crash,err: "+JSON.stringify(err)); - } - }).margin(5).width('100%') - - Button('spp接收服务').fontSize(20).onClick(() => { - testLog("spp接收服务执行"); - try { - bluetoothManager.sppAccept(this.serverNumber, (code, clientSocketId) => { - if (code.code) { - testLog("spp接收服务失败,err: " + JSON.stringify(code)); - } else { - testLog("spp接收服务成功!") - this.clientSocketId = clientSocketId; - } - }) - } catch (err) { - testLog("spp接收服务crash,err: "+JSON.stringify(err)) - } - }).margin(5).width('100%') - - Button('spp接收命令').fontSize(20).onClick(() => { - try { - bluetoothManager.on('sppRead', this.clientSocketId, (dataBuffer: ArrayBuffer) => { - if (dataBuffer != null) { - let data = new Uint8Array(dataBuffer); - this.receiveMessage = JSON.stringify(String.fromCharCode(...data)); - testLog("spp接收命令成功!") - } else { - testLog("spp接收命令为空!"); - } - - }) - } catch (err) { - testLog("spp接收命令crash,err: "+JSON.stringify(err)); - } - - }).margin(5).width('100%') - - Button('spp关闭命令接收').fontSize(20).onClick(() => { - try{ - bluetoothManager.off('sppRead', this.clientSocketId, null); - testLog("spp关闭命令接收成功!"); - }catch(error){ - testLog("spp关闭命令接收失败,err: "+JSON.stringify(error)); - } - }).margin(5).width('100%') - - Button('spp关闭服务').fontSize(20).onClick(() => { - try{ - bluetoothManager.sppCloseServerSocket(this.serverNumber); - bluetoothManager.sppCloseClientSocket(this.clientSocketId); - testLog("关闭服务成功!") - }catch (error){ - testLog("关闭服务失败,err: "+JSON.stringify(error)); - } - }).margin(5).width('100%') - - Text(this.receiveMessage) - .fontSize(30) - .fontWeight(FontWeight.Bold) - } - .width('100%') - } - .height('100%') - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppTest.ets deleted file mode 100644 index 0870aed686..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppTest.ets +++ /dev/null @@ -1,22 +0,0 @@ -import router from '@ohos.router'; -@Entry -@Component -struct SppTest { - @State message: string = 'Hello World' - - build() { - Row() { - Column() { - Button('Spp命令接收端').fontSize(30).onClick(() => { - router.push({url: 'pages/SppTest/SppServerTest'}) - }).margin(20) - - Button('Spp命令发送端').fontSize(30).onClick(() => { - router.push({ url: 'pages/SppTest/SppClientTest' }) - }) - } - .width('100%') - } - .height('100%') - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/module.json5 b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/module.json5 deleted file mode 100644 index 841d6f89d9..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/module.json5 +++ /dev/null @@ -1,59 +0,0 @@ -{ - "module": { - "name": "entry", - "type": "entry", - "description": "$string:module_desc", - "mainElement": "EntryAbility", - "deviceTypes": [ - "default" - ], - "deliveryWithInstall": true, - "installationFree": false, - "pages": "$profile:main_pages", - "abilities": [ - { - "name": "EntryAbility", - "srcEntry": "./ets/entryability/EntryAbility.ts", - "description": "$string:EntryAbility_desc", - "icon": "$media:app_icon", - "label": "$string:EntryAbility_label", - "startWindowIcon": "$media:icon", - "startWindowBackground": "$color:start_window_background", - "exported": true, - "skills": [ - { - "entities": [ - "entity.system.home" - ], - "actions": [ - "action.system.home" - ] - } - ] - } - ], - "requestPermissions": [ - { - "name": "ohos.permission.USE_BLUETOOTH" - }, - { - "name": "ohos.permission.DISCOVER_BLUETOOTH" - }, - { - "name": "ohos.permission.LOCATION", - "reason": "$string:reason" - }, - { - "name": "ohos.permission.APPROXIMATELY_LOCATION", - "reason": "$string:reason" - }, - { - "name": "ohos.permission.MANAGE_BLUETOOTH" - }, - { - "name": "ohos.permission.ACCESS_BLUETOOTH", - "reason": "$string:reason" - } - ] - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/color.json b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/color.json deleted file mode 100644 index 3c712962da..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/color.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "color": [ - { - "name": "start_window_background", - "value": "#FFFFFF" - } - ] -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/string.json b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/string.json deleted file mode 100644 index 4b2469bb0e..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/string.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "string": [ - { - "name": "module_desc", - "value": "module description" - }, - { - "name": "EntryAbility_desc", - "value": "description" - }, - { - "name": "EntryAbility_label", - "value": "蓝牙文件传输" - }, - { - "name": "reason", - "value": "user_grant" - } - ] -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/app_icon.png b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/app_icon.png deleted file mode 100644 index 380e486977b2d0259fcb3aed0f54a5e0a98ed528..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6002 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 diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/icon.png b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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
>u+@Z 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%0DS+p1g$450)(1@fA_ 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%0AWjq5qLtohrC4`DAX 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 { - if (err.code) { - hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); - return; - } - hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', - JSON.stringify(data) ?? ''); - }); - } - - onWindowStageDestroy() { - hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onWindowStageDestroy'); - } - - onForeground() { - hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onForeground'); - } - - onBackground() { - hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onBackground'); - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/pages/Index.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/pages/Index.ets deleted file mode 100644 index 166366593a..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/pages/Index.ets +++ /dev/null @@ -1,34 +0,0 @@ -import hilog from '@ohos.hilog'; - -@Entry -@Component -struct Index { - aboutToAppear() { - hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility index aboutToAppear'); - } - @State message: string = 'Hello World' - build() { - Row() { - Column() { - Text(this.message) - .fontSize(50) - .fontWeight(FontWeight.Bold) - Button() { - Text('next page') - .fontSize(20) - .fontWeight(FontWeight.Bold) - }.type(ButtonType.Capsule) - .margin({ - top: 20 - }) - .backgroundColor('#0D9FFB') - .width('35%') - .height('5%') - .onClick(()=>{ - }) - } - .width('100%') - } - .height('100%') - } - } \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts deleted file mode 100644 index 92a16d84e8..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts +++ /dev/null @@ -1,49 +0,0 @@ -import hilog from '@ohos.hilog'; -import TestRunner from '@ohos.application.testRunner'; -import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; - -var abilityDelegator = undefined -var abilityDelegatorArguments = undefined - -async function onAbilityCreateCallback() { - hilog.info(0x0000, 'testTag', '%{public}s', 'onAbilityCreateCallback'); -} - -async function addAbilityMonitorCallback(err: any) { - hilog.info(0x0000, 'testTag', 'addAbilityMonitorCallback : %{public}s', JSON.stringify(err) ?? ''); -} - -export default class OpenHarmonyTestRunner implements TestRunner { - constructor() { - } - - onPrepare() { - hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner OnPrepare '); - } - - async onRun() { - hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun run'); - abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() - abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() - var testAbilityName = abilityDelegatorArguments.bundleName + '.TestAbility' - let lMonitor = { - abilityName: testAbilityName, - onAbilityCreate: onAbilityCreateCallback, - }; - abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback) - var cmd = 'aa start -d 0 -a TestAbility' + ' -b ' + abilityDelegatorArguments.bundleName - var debug = abilityDelegatorArguments.parameters['-D'] - if (debug == 'true') - { - cmd += ' -D' - } - hilog.info(0x0000, 'testTag', 'cmd : %{public}s', cmd); - abilityDelegator.executeShellCommand(cmd, - (err: any, d: any) => { - hilog.info(0x0000, 'testTag', 'executeShellCommand : err : %{public}s', JSON.stringify(err) ?? ''); - hilog.info(0x0000, 'testTag', 'executeShellCommand : data : %{public}s', d.stdResult ?? ''); - hilog.info(0x0000, 'testTag', 'executeShellCommand : data : %{public}s', d.exitCode ?? ''); - }) - hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun end'); - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/module.json5 b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/module.json5 deleted file mode 100644 index c386019030..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/module.json5 +++ /dev/null @@ -1,36 +0,0 @@ -{ - "module": { - "name": "entry_test", - "type": "feature", - "description": "$string:module_test_desc", - "mainElement": "TestAbility", - "deviceTypes": [ - "default" - ], - "deliveryWithInstall": true, - "installationFree": false, - "pages": "$profile:test_pages", - "abilities": [ - { - "name": "TestAbility", - "srcEntry": "./ets/testability/TestAbility.ets", - "description": "$string:TestAbility_desc", - "icon": "$media:icon", - "label": "$string:TestAbility_label", - "exported": true, - "startWindowIcon": "$media:icon", - "startWindowBackground": "$color:start_window_background", - "skills": [ - { - "actions": [ - "action.system.home" - ], - "entities": [ - "entity.system.home" - ] - } - ] - } - ] - } -} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/color.json b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/color.json deleted file mode 100644 index 3c712962da..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/color.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "color": [ - { - "name": "start_window_background", - "value": "#FFFFFF" - } - ] -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/string.json b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/string.json deleted file mode 100644 index 65d8fa5a7c..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/string.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "string": [ - { - "name": "module_test_desc", - "value": "test ability description" - }, - { - "name": "TestAbility_desc", - "value": "the test ability" - }, - { - "name": "TestAbility_label", - "value": "test label" - } - ] -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/media/icon.png b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/media/icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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.default.createHash(u);u.hash=(D,e)=>(0,u.createHash)(e).update(D).digest("hex");u.hashFile=(D,e)=>{if(i.default.existsSync(D))return(0,u.hash)(i.default.readFileSync(D,"utf-8"),e)}}(v);var g={},m={},R={};Object.defineProperty(R,"__esModule",{value:!0}),R.Unicode=void 0;class y{}R.Unicode=y,y.SPACE_SEPARATOR=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,y.ID_START=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,y.ID_CONTINUE=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,Object.defineProperty(m,"__esModule",{value:!0}),m.JudgeUtil=void 0;const I=R;m.JudgeUtil=class{static isIgnoreChar(u){return"string"==typeof u&&("\t"===u||"\v"===u||"\f"===u||" "===u||" "===u||"\ufeff"===u||"\n"===u||"\r"===u||"\u2028"===u||"\u2029"===u)}static isSpaceSeparator(u){return"string"==typeof u&&I.Unicode.SPACE_SEPARATOR.test(u)}static isIdStartChar(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||"$"===u||"_"===u||I.Unicode.ID_START.test(u))}static isIdContinueChar(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||u>="0"&&u<="9"||"$"===u||"_"===u||"‌"===u||"‍"===u||I.Unicode.ID_CONTINUE.test(u))}static isDigitWithoutZero(u){return/[1-9]/.test(u)}static isDigit(u){return"string"==typeof u&&/[0-9]/.test(u)}static isHexDigit(u){return"string"==typeof u&&/[0-9A-Fa-f]/.test(u)}};var N=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(g,"__esModule",{value:!0}),g.parseJsonText=g.parseJsonFile=void 0;const b=N(e),S=N(D),w=N(u),H=m;var x;!function(u){u[u.Char=0]="Char",u[u.EOF=1]="EOF",u[u.Identifier=2]="Identifier"}(x||(x={}));let M,T,V,G,j,J,W="start",U=[],L=0,$=1,k=0,K=!1,z="default",q="'",Z=1;function X(u,D=!1){T=String(u),W="start",U=[],L=0,$=1,k=0,G=void 0,K=D;do{M=Q(),nu[W]()}while("eof"!==M.type);return G}function Q(){for(z="default",j="",q="'",Z=1;;){J=Y();const u=Du[z]();if(u)return u}}function Y(){if(T[L])return String.fromCodePoint(T.codePointAt(L))}function uu(){const u=Y();return"\n"===u?($++,k=0):u?k+=u.length:k++,u&&(L+=u.length),u}g.parseJsonFile=function(u,D=!1,e="utf-8"){const t=b.default.readFileSync(w.default.resolve(u),{encoding:e});try{return X(t,D)}catch(D){if(D instanceof SyntaxError){const e=D.message.split("at");if(2===e.length)throw new Error(`${e[0].trim()}${S.default.EOL}\t at ${u}:${e[1].trim()}`)}throw new Error(`${u} is not in valid JSON/JSON5 format.`)}},g.parseJsonText=X;const Du={default(){switch(J){case"/":return uu(),void(z="comment");case void 0:return uu(),eu("eof")}if(!H.JudgeUtil.isIgnoreChar(J)&&!H.JudgeUtil.isSpaceSeparator(J))return Du[W]();uu()},start(){z="value"},beforePropertyName(){switch(J){case"$":case"_":return j=uu(),void(z="identifierName");case"\\":return uu(),void(z="identifierNameStartEscape");case"}":return eu("punctuator",uu());case'"':case"'":return q=J,uu(),void(z="string")}if(H.JudgeUtil.isIdStartChar(J))return j+=uu(),void(z="identifierName");throw Eu(x.Char,uu())},afterPropertyName(){if(":"===J)return eu("punctuator",uu());throw Eu(x.Char,uu())},beforePropertyValue(){z="value"},afterPropertyValue(){switch(J){case",":case"}":return eu("punctuator",uu())}throw Eu(x.Char,uu())},beforeArrayValue(){if("]"===J)return eu("punctuator",uu());z="value"},afterArrayValue(){switch(J){case",":case"]":return eu("punctuator",uu())}throw Eu(x.Char,uu())},end(){throw Eu(x.Char,uu())},comment(){switch(J){case"*":return uu(),void(z="multiLineComment");case"/":return uu(),void(z="singleLineComment")}throw Eu(x.Char,uu())},multiLineComment(){switch(J){case"*":return uu(),void(z="multiLineCommentAsterisk");case void 0:throw Eu(x.Char,uu())}uu()},multiLineCommentAsterisk(){switch(J){case"*":return void uu();case"/":return uu(),void(z="default");case void 0:throw Eu(x.Char,uu())}uu(),z="multiLineComment"},singleLineComment(){switch(J){case"\n":case"\r":case"\u2028":case"\u2029":return uu(),void(z="default");case void 0:return uu(),eu("eof")}uu()},value(){switch(J){case"{":case"[":return eu("punctuator",uu());case"n":return uu(),tu("ull"),eu("null",null);case"t":return uu(),tu("rue"),eu("boolean",!0);case"f":return uu(),tu("alse"),eu("boolean",!1);case"-":case"+":return"-"===uu()&&(Z=-1),void(z="numerical");case".":case"0":case"I":case"N":return void(z="numerical");case'"':case"'":return q=J,uu(),j="",void(z="string")}if(void 0===J||!H.JudgeUtil.isDigitWithoutZero(J))throw Eu(x.Char,uu());z="numerical"},numerical(){switch(J){case".":return j=uu(),void(z="decimalPointLeading");case"0":return j=uu(),void(z="zero");case"I":return uu(),tu("nfinity"),eu("numeric",Z*(1/0));case"N":return uu(),tu("aN"),eu("numeric",NaN)}if(void 0!==J&&H.JudgeUtil.isDigitWithoutZero(J))return j=uu(),void(z="decimalInteger");throw Eu(x.Char,uu())},zero(){switch(J){case".":case"e":case"E":return void(z="decimal");case"x":case"X":return j+=uu(),void(z="hexadecimal")}return eu("numeric",0)},decimalInteger(){switch(J){case".":case"e":case"E":return void(z="decimal")}if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},decimal(){switch(J){case".":j+=uu(),z="decimalFraction";break;case"e":case"E":j+=uu(),z="decimalExponent"}},decimalPointLeading(){if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalFraction");throw Eu(x.Char,uu())},decimalFraction(){switch(J){case"e":case"E":return j+=uu(),void(z="decimalExponent")}if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},decimalExponent(){switch(J){case"+":case"-":return j+=uu(),void(z="decimalExponentSign")}if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalExponentInteger");throw Eu(x.Char,uu())},decimalExponentSign(){if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalExponentInteger");throw Eu(x.Char,uu())},decimalExponentInteger(){if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},hexadecimal(){if(H.JudgeUtil.isHexDigit(J))return j+=uu(),void(z="hexadecimalInteger");throw Eu(x.Char,uu())},hexadecimalInteger(){if(!H.JudgeUtil.isHexDigit(J))return eu("numeric",Z*Number(j));j+=uu()},identifierNameStartEscape(){if("u"!==J)throw Eu(x.Char,uu());uu();const u=ru();switch(u){case"$":case"_":break;default:if(!H.JudgeUtil.isIdStartChar(u))throw Eu(x.Identifier)}j+=u,z="identifierName"},identifierName(){switch(J){case"$":case"_":case"‌":case"‍":return void(j+=uu());case"\\":return uu(),void(z="identifierNameEscape")}if(!H.JudgeUtil.isIdContinueChar(J))return eu("identifier",j);j+=uu()},identifierNameEscape(){if("u"!==J)throw Eu(x.Char,uu());uu();const u=ru();switch(u){case"$":case"_":case"‌":case"‍":break;default:if(!H.JudgeUtil.isIdContinueChar(u))throw Eu(x.Identifier)}j+=u,z="identifierName"},string(){switch(J){case"\\":return uu(),void(j+=function(){const u=Y(),D=function(){switch(Y()){case"b":return uu(),"\b";case"f":return uu(),"\f";case"n":return uu(),"\n";case"r":return uu(),"\r";case"t":return uu(),"\t";case"v":return uu(),"\v"}return}();if(D)return D;switch(u){case"0":if(uu(),H.JudgeUtil.isDigit(Y()))throw Eu(x.Char,uu());return"\0";case"x":return uu(),function(){let u="",D=Y();if(!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());if(u+=uu(),D=Y(),!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());return u+=uu(),String.fromCodePoint(parseInt(u,16))}();case"u":return uu(),ru();case"\n":case"\u2028":case"\u2029":return uu(),"";case"\r":return uu(),"\n"===Y()&&uu(),""}if(void 0===u||H.JudgeUtil.isDigitWithoutZero(u))throw Eu(x.Char,uu());return uu()}());case'"':case"'":if(J===q){const u=eu("string",j);return uu(),u}return void(j+=uu());case"\n":case"\r":case void 0:throw Eu(x.Char,uu());case"\u2028":case"\u2029":!function(u){console.warn(`JSON5: '${Fu(u)}' in strings is not valid ECMAScript; consider escaping.`)}(J)}j+=uu()}};function eu(u,D){return{type:u,value:D,line:$,column:k}}function tu(u){for(const D of u){if(Y()!==D)throw Eu(x.Char,uu());uu()}}function ru(){let u="",D=4;for(;D-- >0;){const D=Y();if(!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());u+=uu()}return String.fromCodePoint(parseInt(u,16))}const nu={start(){if("eof"===M.type)throw Eu(x.EOF);iu()},beforePropertyName(){switch(M.type){case"identifier":case"string":return V=M.value,void(W="afterPropertyName");case"punctuator":return void Cu();case"eof":throw Eu(x.EOF)}},afterPropertyName(){if("eof"===M.type)throw Eu(x.EOF);W="beforePropertyValue"},beforePropertyValue(){if("eof"===M.type)throw Eu(x.EOF);iu()},afterPropertyValue(){if("eof"===M.type)throw Eu(x.EOF);switch(M.value){case",":return void(W="beforePropertyName");case"}":Cu()}},beforeArrayValue(){if("eof"===M.type)throw Eu(x.EOF);"punctuator"!==M.type||"]"!==M.value?iu():Cu()},afterArrayValue(){if("eof"===M.type)throw Eu(x.EOF);switch(M.value){case",":return void(W="beforeArrayValue");case"]":Cu()}},end(){}};function iu(){const u=function(){let u;switch(M.type){case"punctuator":switch(M.value){case"{":u={};break;case"[":u=[]}break;case"null":case"boolean":case"numeric":case"string":u=M.value}return u}();if(K&&"object"==typeof u&&(u._line=$,u._column=k),void 0===G)G=u;else{const D=U[U.length-1];Array.isArray(D)?K&&"object"!=typeof u?D.push({value:u,_line:$,_column:k}):D.push(u):D[V]=K&&"object"!=typeof u?{value:u,_line:$,_column:k}:u}!function(u){if(u&&"object"==typeof u)U.push(u),W=Array.isArray(u)?"beforeArrayValue":"beforePropertyName";else{const u=U[U.length-1];W=u?Array.isArray(u)?"afterArrayValue":"afterPropertyValue":"end"}}(u)}function Cu(){U.pop();const u=U[U.length-1];W=u?Array.isArray(u)?"afterArrayValue":"afterPropertyValue":"end"}function Fu(u){const D={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(D[u])return D[u];if(u<" "){const D=u.charCodeAt(0).toString(16);return`\\x${`00${D}`.substring(D.length)}`}return u}function Eu(u,D){let e="";switch(u){case x.Char:e=void 0===D?`JSON5: invalid end of input at ${$}:${k}`:`JSON5: invalid character '${Fu(D)}' at ${$}:${k}`;break;case x.EOF:e=`JSON5: invalid end of input at ${$}:${k}`;break;case x.Identifier:k-=5,e=`JSON5: invalid identifier character at ${$}:${k}`}const t=new Au(e);return t.lineNumber=$,t.columnNumber=k,t}class Au extends SyntaxError{}var ou={},au=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),cu=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),su=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&au(D,u,e);return cu(D,u),D},lu=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(ou,"__esModule",{value:!0}),ou.isFileExists=ou.offlinePluginConversion=ou.executeCommand=ou.getNpmPath=ou.hasNpmPackInPaths=void 0;const Bu=r,du=lu(e),fu=su(u),_u=i,pu=l;ou.hasNpmPackInPaths=function(u,D){try{return require.resolve(u,{paths:[...D]}),!0}catch(u){return!1}},ou.getNpmPath=function(){const u=process.execPath;return fu.join(fu.dirname(u),_u.NPM_TOOL)},ou.executeCommand=function(u,D,e){0!==(0,Bu.spawnSync)(u,D,e).status&&(0,pu.logErrorAndExit)(`Error: ${u} ${D} execute failed.See above for details.`)},ou.offlinePluginConversion=function(u,D){return D.startsWith("file:")||D.endsWith(".tgz")?fu.resolve(u,_u.HVIGOR,D.replace("file:","")):D},ou.isFileExists=function(u){return du.default.existsSync(u)&&du.default.statSync(u).isFile()};var Ou=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),hu=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),Pu=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&Ou(D,u,e);return hu(D,u),D},vu=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(P,"__esModule",{value:!0});var gu=P.initProjectWorkSpace=void 0;const mu=Pu(e),Ru=vu(D),yu=Pu(u),Iu=v,Nu=i,bu=g,Su=l,wu=ou;let Hu,xu,Mu;function Tu(u,D,e){return void 0!==e.dependencies&&(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,D.dependencies[u])===yu.normalize(e.dependencies[u])}function Vu(){const u=yu.join(Mu,Nu.WORK_SPACE);if((0,Su.logInfoPrintConsole)("Hvigor cleaning..."),!mu.existsSync(u))return;const D=mu.readdirSync(u);if(!D||0===D.length)return;const e=yu.resolve(Mu,"node_modules","@ohos","hvigor","bin","hvigor.js");mu.existsSync(e)&&(0,wu.executeCommand)(process.argv[0],[e,"--stop-daemon"],{});try{D.forEach((D=>{mu.rmSync(yu.resolve(u,D),{recursive:!0})}))}catch(D){(0,Su.logErrorAndExit)(`The hvigor build tool cannot be installed. Please manually clear the workspace directory and synchronize the project again.\n\n Workspace Path: ${u}.`)}}gu=P.initProjectWorkSpace=function(){if(Hu=function(){const u=yu.resolve(Nu.HVIGOR_PROJECT_WRAPPER_HOME,Nu.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME);mu.existsSync(u)||(0,Su.logErrorAndExit)(`Error: Hvigor config file ${u} does not exist.`);return(0,bu.parseJsonFile)(u)}(),Mu=function(u){let D;D=function(u){let D=u.hvigorVersion;if(D.startsWith("file:")||D.endsWith(".tgz"))return!1;const e=u.dependencies,t=Object.getOwnPropertyNames(e);for(const u of t){const D=e[u];if(D.startsWith("file:")||D.endsWith(".tgz"))return!1}if(1===t.length&&"@ohos/hvigor-ohos-plugin"===t[0])return D>"2.5.0";return!1}(u)?function(u){let D=`${Nu.HVIGOR_ENGINE_PACKAGE_NAME}@${u.hvigorVersion}`;const e=u.dependencies;if(e){Object.getOwnPropertyNames(e).sort().forEach((u=>{D+=`,${u}@${e[u]}`}))}return(0,Iu.hash)(D)}(u):(0,Iu.hash)(process.cwd());return yu.resolve(Ru.default.homedir(),".hvigor","project_caches",D)}(Hu),xu=function(){const u=yu.resolve(Mu,Nu.WORK_SPACE,Nu.DEFAULT_PACKAGE_JSON);return mu.existsSync(u)?(0,bu.parseJsonFile)(u):{dependencies:{}}}(),!(0,wu.hasNpmPackInPaths)(Nu.HVIGOR_ENGINE_PACKAGE_NAME,[yu.join(Mu,Nu.WORK_SPACE)])||(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.hvigorVersion)!==xu.dependencies[Nu.HVIGOR_ENGINE_PACKAGE_NAME]||!function(){function u(u){const D=null==u?void 0:u.dependencies;return void 0===D?0:Object.getOwnPropertyNames(D).length}const D=u(Hu),e=u(xu);if(D+1!==e)return!1;for(const u in null==Hu?void 0:Hu.dependencies)if(!(0,wu.hasNpmPackInPaths)(u,[yu.join(Mu,Nu.WORK_SPACE)])||!Tu(u,Hu,xu))return!1;return!0}()){Vu();try{!function(){(0,Su.logInfoPrintConsole)("Hvigor installing...");for(const u in Hu.dependencies)Hu.dependencies[u]&&(Hu.dependencies[u]=(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.dependencies[u]));const u={dependencies:{...Hu.dependencies}};u.dependencies[Nu.HVIGOR_ENGINE_PACKAGE_NAME]=(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.hvigorVersion);const D=yu.join(Mu,Nu.WORK_SPACE);try{mu.mkdirSync(D,{recursive:!0});const e=yu.resolve(D,Nu.DEFAULT_PACKAGE_JSON);mu.writeFileSync(e,JSON.stringify(u))}catch(u){(0,Su.logErrorAndExit)(u)}(function(){const u=["config","set","store-dir",Nu.HVIGOR_PNPM_STORE_PATH],D={cwd:yu.join(Mu,Nu.WORK_SPACE),stdio:["inherit","inherit","inherit"]};(0,wu.executeCommand)(Nu.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,u,D)})(),function(){const u=["install"],D={cwd:yu.join(Mu,Nu.WORK_SPACE),stdio:["inherit","inherit","inherit"]};(0,wu.executeCommand)(Nu.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,u,D)}(),(0,Su.logInfoPrintConsole)("Hvigor install success.")}()}catch(u){Vu()}}return Mu};var Gu={};!function(t){var C=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),F=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),E=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&C(D,u,e);return F(D,u),D},A=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(t,"__esModule",{value:!0}),t.executeInstallPnpm=t.isPnpmInstalled=t.environmentHandler=t.checkNpmConifg=t.PNPM_VERSION=void 0;const o=r,a=E(e),c=A(D),s=E(u),B=i,d=l,f=ou;t.PNPM_VERSION="7.30.0",t.checkNpmConifg=function(){const u=s.resolve(B.HVIGOR_PROJECT_ROOT_DIR,".npmrc"),D=s.resolve(c.default.homedir(),".npmrc");if((0,f.isFileExists)(u)||(0,f.isFileExists)(D))return;const e=(0,f.getNpmPath)(),t=(0,o.spawnSync)(e,["config","get","prefix"],{cwd:B.HVIGOR_PROJECT_ROOT_DIR});if(0!==t.status||!t.stdout)return void(0,d.logErrorAndExit)("Error: The hvigor depends on the npmrc file. Configure the npmrc file first.");const r=s.resolve(`${t.stdout}`.replace(/[\r\n]/gi,""),".npmrc");(0,f.isFileExists)(r)||(0,d.logErrorAndExit)("Error: The hvigor depends on the npmrc file. Configure the npmrc file first.")},t.environmentHandler=function(){process.env["npm_config_update-notifier"]="false"},t.isPnpmInstalled=function(){return!!a.existsSync(B.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH)&&(0,f.hasNpmPackInPaths)("pnpm",[B.HVIGOR_WRAPPER_TOOLS_HOME])},t.executeInstallPnpm=function(){(0,d.logInfoPrintConsole)(`Installing pnpm@${t.PNPM_VERSION}...`);const u=(0,f.getNpmPath)();!function(){const u=s.resolve(B.HVIGOR_WRAPPER_TOOLS_HOME,B.DEFAULT_PACKAGE_JSON);try{a.existsSync(B.HVIGOR_WRAPPER_TOOLS_HOME)||a.mkdirSync(B.HVIGOR_WRAPPER_TOOLS_HOME,{recursive:!0});const D={dependencies:{}};D.dependencies[B.PNPM]=t.PNPM_VERSION,a.writeFileSync(u,JSON.stringify(D))}catch(D){(0,d.logErrorAndExit)(`Error: EPERM: operation not permitted,create ${u} failed.`)}}(),(0,f.executeCommand)(u,["install","pnpm"],{cwd:B.HVIGOR_WRAPPER_TOOLS_HOME,stdio:["inherit","inherit","inherit"],env:process.env}),(0,d.logInfoPrintConsole)("Pnpm install success.")}}(Gu),function(){Gu.checkNpmConifg(),Gu.environmentHandler(),Gu.isPnpmInstalled()||Gu.executeInstallPnpm();const D=gu();_(u.join(D,i.WORK_SPACE))}(); \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/hvigorfile.ts b/code/Solutions/OppTrans/BluetoothOpp/hvigorfile.ts deleted file mode 100644 index 6478186902..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/hvigorfile.ts +++ /dev/null @@ -1,2 +0,0 @@ -// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. -export { appTasks } from '@ohos/hvigor-ohos-plugin'; \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/oh-package-lock.json5 b/code/Solutions/OppTrans/BluetoothOpp/oh-package-lock.json5 deleted file mode 100644 index b73134ed2b..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/oh-package-lock.json5 +++ /dev/null @@ -1,15 +0,0 @@ -{ - "lockfileVersion": 2, - "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", - "specifiers": { - "@ohos/hypium@1.0.11": "@ohos/hypium@1.0.11" - }, - "packages": { - "@ohos/hypium@1.0.11": { - "resolved": "https://repo.harmonyos.com/ohpm/@ohos/hypium/-/hypium-1.0.11.tgz", - "integrity": "sha512-KawcLnv43C3QIYv1UbDnKCFX3MohtDxGuFvzlUxT/qf2DBilR56Ws6zrj90LdH6PjloJQwOPESuBQIHBACAK7w==", - "registryType": "ohpm", - "shasum": "fa799d273fa7d921701578c5e7084849354a4af0" - } - } -} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/oh-package.json5 b/code/Solutions/OppTrans/BluetoothOpp/oh-package.json5 deleted file mode 100644 index b40dd79c12..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/oh-package.json5 +++ /dev/null @@ -1,11 +0,0 @@ -{ - "license": "ISC", - "devDependencies": { - "@ohos/hypium": "1.0.11" - }, - "name": "bluetoothopp", - "description": "example description", - "repository": {}, - "version": "1.0.0", - "dependencies": {} -} diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.cer b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.cer deleted file mode 100644 index d1dbf53df2..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.cer +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFjCCAZugAwIBAgIIKm0UFAfvhgQwCgYIKoZIzj0EAwMwYzELMAkGA1UEBhMC -Q04xFDASBgNVBAoTC09wZW5IYXJtb255MRkwFwYDVQQLExBPcGVuSGFybW9ueSBU -ZWFtMSMwIQYDVQQDExpPcGVuSGFybW9ueSBBcHBsaWNhdGlvbiBDQTAeFw0yNDAx -MTUxMTM5MDlaFw0zNDAxMTIxMTM5MDlaMEoxFTATBgNVBAMMDGlkZV9kZW1vX2Fw -cDENMAsGA1UECxMEVW5pdDEVMBMGA1UEChMMT3JnYW5pemF0aW9uMQswCQYDVQQG -EwJDTjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbJ8AqxiUMpbrG8JV8xjckR -/syp+S491HSubkcC2Y4ZFNS9o0x3CR6eLwePBkJonLsqN9+0mxD5ggO5jHyI2h2j -UjBQMB0GA1UdDgQWBBSuhZIhWskdGLgWRk/NJ1srDk8gGDAOBgNVHQ8BAf8EBAMC -B4AwHwYDVR0jBBgwFoAU24a3IhbVC6FLt90le7nxBX2iLUcwCgYIKoZIzj0EAwMD -aQAwZgIxALroopgy9gLYTzOe/Xui/f3pL4NUbTsq0xNIWwAFrS2aCMXph25sztD/ -Q/j2VGjCNgIxAOg5w8Yxv1Zl/LpbFVHkdz6hAs8aDO5JNtOjq3k1xvgazAcBNLIm -poY3IMz99wioCA== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICYTCCAeWgAwIBAgIEHmXAPTAMBggqhkjOPQQDAwUAMGgxCzAJBgNVBAYTAkNO -MRQwEgYDVQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkgVGVh -bTEoMCYGA1UEAxMfT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gUm9vdCBDQTAeFw0y -MTAyMDIxMjE1MzJaFw00OTEyMzExMjE1MzJaMGMxCzAJBgNVBAYTAkNOMRQwEgYD -VQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkgVGVhbTEjMCEG -A1UEAxMaT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gQ0EwdjAQBgcqhkjOPQIBBgUr -gQQAIgNiAAQhnu7Hna8XNa2KyqRf5+lBJScE4xqf89N0g0OuqAb2re8nGsvWkw26 -uDekfnBYicd+G3Cydqa2zFIwV7Talyg2ULW3r8KbGpyl84mJEPPRmCGJ+H9gtCsf -+OrJ4Y76LVWjYzBhMB8GA1UdIwQYMBaAFBc6EKGrGXzlAE+s0Zgnsphadw7NMA8G -A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTbhrciFtUL -oUu33SV7ufEFfaItRzAMBggqhkjOPQQDAwUAA2gAMGUCMG3cXjiDmXTvf7D4Omhf -qcc2nuO+EMfWE+N9ZhBP5UhV34mAGWi3SfLU6rcV0urWEQIxAMYIb3epOnKhUrcm -Lfu1WKzFlpYQwmw73RaCHP2I3k6NcuWOYeNwWXSNZ8o0nzvaLg== ------END CERTIFICATE----- diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.csr b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.csr deleted file mode 100644 index b88417a17c..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.csr +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN NEW CERTIFICATE REQUEST----- -MIIBNTCB3AIBADBKMRUwEwYDVQQDDAxpZGVfZGVtb19hcHAxDTALBgNVBAsTBFVu -aXQxFTATBgNVBAoTDE9yZ2FuaXphdGlvbjELMAkGA1UEBhMCQ04wWTATBgcqhkjO -PQIBBggqhkjOPQMBBwNCAASWyfAKsYlDKW6xvCVfMY3JEf7MqfkuPdR0rm5HAtmO -GRTUvaNMdwkeni8HjwZCaJy7KjfftJsQ+YIDuYx8iNodoDAwLgYJKoZIhvcNAQkO -MSEwHzAdBgNVHQ4EFgQUroWSIVrJHRi4FkZPzSdbKw5PIBgwCgYIKoZIzj0EAwID -SAAwRQIgd8C+BuFeHDO6Me4I+XnmVqzhzXtHP0xjjXfVOM3ijz0CIQD2/ck9xxk7 -hsrqsJsS4ntCXZ1YTBfrX3VJRsCVeIDylw== ------END NEW CERTIFICATE REQUEST----- diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p12 b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p12 deleted file mode 100644 index 6f9010037563fdbdce8d883def74089e2494bd98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1128 zcmXqLVo70QWHxAG;bY^}YV&CO&dbQoxS)yoKT8wyZ-XZ0?*>hbdMHwi@+?h^(m-Kx zAQoohhU((sVq{v-xYwX@mq8j_Ju9z4q=5y3%VVI;BBFDwU+C#6rp`ZU778a^{C0Fa z&(vXJQWs!iR50LSX?S4++UbE`tK9QM+(})SEfPN3@M(_8|zZW{r)?Rq8 zxuJ>4Kw{FXwWfW$wWGH#yA3)|88K*P3@@TuoG~&r`A=T)zP)w_<*&C_2Va1-sUCR z$7i2P^Z(EseWovVpTA7_zEY!2G zE^E!R4RRkNUe+irb1j?8?_+%GoV6bR-9Y|F8&&6P^>@`@`E6fnv_h%4;zy6n(nsH9 zCv&g1vAWOWu~PYv>idTE9-^rkg_|d8i7vJ~u)>x9?dD}i9H-x1)luQQDBro(%*OiD z1e<$e&(b%0@^mpoF=joo`&)P*cnPP){H(tj+=t8DioA7ix*vU){W5zWL+sJHKg7IT z7{0L-o#n_=Hk&}NsH_u#c&GuL@bjptaA!dQVI6qL51pu44&V~R0 diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p7b b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p7b deleted file mode 100644 index 643c492a22632744bc829299b23eda017b9a0e26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3436 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 Y&|`ld)4nL{wQT;6*WL=;nqIp6zoCm%FaQ7m diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/ac/15289cf25ff14683bec511de83404197 b/code/Solutions/OppTrans/BluetoothOpp/signature/material/ac/15289cf25ff14683bec511de83404197 deleted file mode 100644 index 8f9f34bcea..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/signature/material/ac/15289cf25ff14683bec511de83404197 +++ /dev/null @@ -1 +0,0 @@ -y̋;6XBT \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/ce/74968108cf77439cb81ab093fafa433a b/code/Solutions/OppTrans/BluetoothOpp/signature/material/ce/74968108cf77439cb81ab093fafa433a deleted file mode 100644 index dad0f1022dfe14a112ce0c7f308d07c44651dec2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48 zcmV-00MGvb001CqPB{IQ9sa8X-X)ZA$wVPv=&8V^4>uNhe!g2Ir6~#zDP(q&EXHr) GH+z7|suOqs diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/0/5ab1f470e3f54dae851ceb943c486769 b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/0/5ab1f470e3f54dae851ceb943c486769 deleted file mode 100644 index 7aa1f25078..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/0/5ab1f470e3f54dae851ceb943c486769 +++ /dev/null @@ -1 +0,0 @@ -;"# \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/1/9c7bb337005f47079d87ae9373bca94d b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/1/9c7bb337005f47079d87ae9373bca94d deleted file mode 100644 index edba662a6a..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/1/9c7bb337005f47079d87ae9373bca94d +++ /dev/null @@ -1 +0,0 @@ -h!Sxu 3~ \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/2/ea87333a7391483e9e84888a1b0854fb b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/2/ea87333a7391483e9e84888a1b0854fb deleted file mode 100644 index dc1575e644..0000000000 --- a/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/2/ea87333a7391483e9e84888a1b0854fb +++ /dev/null @@ -1 +0,0 @@ -:ܠ&~ Ie \ No newline at end of file -- Gitee From cbdd690ce8f3193e56e7d2d19c5359961d871450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E9=94=90?= Date: Fri, 11 Apr 2025 16:01:28 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=B0=86=E8=93=9D=E7=89=99Opp=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E4=BB=8E7885/4.0.0=E5=90=8C=E6=AD=A5=E8=87=B3oh/maste?= =?UTF-8?q?r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 陈锐 --- .../OppTrans/BluetoothOpp/.gitignore | 9 + .../BluetoothOpp/@ohos.bluetooth.d.ts | 1781 ++++++ .../OppTrans/BluetoothOpp/AppScope/app.json5 | 11 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 6002 bytes .../OppTrans/BluetoothOpp/README_zh.md | 29 + .../OppTrans/BluetoothOpp/build-profile.json5 | 40 + .../OppTrans/BluetoothOpp/entry/.gitignore | 6 + .../BluetoothOpp/entry/build-profile.json5 | 14 + .../OppTrans/BluetoothOpp/entry/hvigorfile.ts | 2 + .../BluetoothOpp/entry/oh-package.json5 | 10 + .../BluetoothOpp/entry/package-lock.json | 5 + .../OppTrans/BluetoothOpp/entry/package.json | 14 + .../entry/src/main/ets/common/log.ts | 6 + .../src/main/ets/entryability/EntryAbility.ts | 42 + .../src/main/ets/pages/BleTest/BleTest.ets | 51 + .../entry/src/main/ets/pages/Index.ets | 38 + .../main/ets/pages/OppTest/OppClientTest.ets | 113 + .../main/ets/pages/OppTest/OppServerTest.ets | 123 + .../src/main/ets/pages/OppTest/OppTest.ets | 21 + .../main/ets/pages/ProfileTest/A2dpTest.ets | 68 + .../main/ets/pages/ProfileTest/HfpTest.ets | 17 + .../ets/pages/ProfileTest/ProfileTest.ets | 22 + .../main/ets/pages/SppTest/SppClientTest.ets | 79 + .../main/ets/pages/SppTest/SppServerTest.ets | 96 + .../src/main/ets/pages/SppTest/SppTest.ets | 22 + .../BluetoothOpp/entry/src/main/module.json5 | 59 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 20 + .../main/resources/base/media/app_icon.png | Bin 0 -> 6002 bytes .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/main_pages.json | 15 + .../main/resources/en_US/element/string.json | 20 + .../main/resources/rawfile/1MB_english.txt | 5110 +++++++++++++++++ .../entry/src/main/resources/rawfile/test.jpg | Bin 0 -> 286700 bytes .../main/resources/zh_CN/element/string.json | 20 + .../src/ohosTest/ets/test/Ability.test.ets | 35 + .../entry/src/ohosTest/ets/test/List.test.ets | 5 + .../ohosTest/ets/testability/TestAbility.ets | 48 + .../ohosTest/ets/testability/pages/Index.ets | 34 + .../ets/testrunner/OpenHarmonyTestRunner.ts | 49 + .../entry/src/ohosTest/module.json5 | 36 + .../resources/base/element/color.json | 8 + .../resources/base/element/string.json | 16 + .../ohosTest/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/test_pages.json | 5 + .../BluetoothOpp/hvigor/hvigor-config.json5 | 18 + .../BluetoothOpp/hvigor/hvigor-wrapper.js | 1 + .../OppTrans/BluetoothOpp/hvigorfile.ts | 2 + .../BluetoothOpp/oh-package-lock.json5 | 15 + .../OppTrans/BluetoothOpp/oh-package.json5 | 11 + .../BluetoothOpp/signature/bluetoothopp.cer | 29 + .../BluetoothOpp/signature/bluetoothopp.csr | 9 + .../BluetoothOpp/signature/bluetoothopp.p12 | Bin 0 -> 1128 bytes .../BluetoothOpp/signature/bluetoothopp.p7b | Bin 0 -> 3436 bytes .../ac/15289cf25ff14683bec511de83404197 | 1 + .../ce/74968108cf77439cb81ab093fafa433a | Bin 0 -> 48 bytes .../fd/0/5ab1f470e3f54dae851ceb943c486769 | 1 + .../fd/1/9c7bb337005f47079d87ae9373bca94d | 1 + .../fd/2/ea87333a7391483e9e84888a1b0854fb | 1 + 60 files changed, 8204 insertions(+) create mode 100644 code/Solutions/OppTrans/BluetoothOpp/.gitignore create mode 100644 code/Solutions/OppTrans/BluetoothOpp/@ohos.bluetooth.d.ts create mode 100644 code/Solutions/OppTrans/BluetoothOpp/AppScope/app.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/element/string.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/media/app_icon.png create mode 100644 code/Solutions/OppTrans/BluetoothOpp/README_zh.md create mode 100644 code/Solutions/OppTrans/BluetoothOpp/build-profile.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/.gitignore create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/build-profile.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/hvigorfile.ts create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/oh-package.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/package-lock.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/package.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/common/log.ts create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/entryability/EntryAbility.ts create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/BleTest/BleTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/Index.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppClientTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppServerTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/A2dpTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/HfpTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/ProfileTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppClientTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppServerTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppTest.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/module.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/color.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/string.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/app_icon.png create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/icon.png create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/profile/main_pages.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/en_US/element/string.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/rawfile/1MB_english.txt create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/rawfile/test.jpg create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/zh_CN/element/string.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/TestAbility.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/pages/Index.ets create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/module.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/color.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/string.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/media/icon.png create mode 100644 code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/profile/test_pages.json create mode 100644 code/Solutions/OppTrans/BluetoothOpp/hvigor/hvigor-config.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/hvigor/hvigor-wrapper.js create mode 100644 code/Solutions/OppTrans/BluetoothOpp/hvigorfile.ts create mode 100644 code/Solutions/OppTrans/BluetoothOpp/oh-package-lock.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/oh-package.json5 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.cer create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.csr create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p12 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p7b create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/ac/15289cf25ff14683bec511de83404197 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/ce/74968108cf77439cb81ab093fafa433a create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/0/5ab1f470e3f54dae851ceb943c486769 create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/1/9c7bb337005f47079d87ae9373bca94d create mode 100644 code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/2/ea87333a7391483e9e84888a1b0854fb diff --git a/code/Solutions/OppTrans/BluetoothOpp/.gitignore b/code/Solutions/OppTrans/BluetoothOpp/.gitignore new file mode 100644 index 0000000000..dc4e6353bf --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/.gitignore @@ -0,0 +1,9 @@ +/node_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/@ohos.bluetooth.d.ts b/code/Solutions/OppTrans/BluetoothOpp/@ohos.bluetooth.d.ts new file mode 100644 index 0000000000..86a848c9c4 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/@ohos.bluetooth.d.ts @@ -0,0 +1,1781 @@ +/* + * Copyright (C) 2021-2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AsyncCallback, Callback } from "./basic"; + +interface BluetoothOppFileHolder { + filePath?:string; + fileSize?:number; + fileFd?:number; +} +/** + * Provides methods to operate or manage Bluetooth. + * @since 7 + * @import import bluetooth from '@ohos.bluetooth' + * @syscap SystemCapability.Communication.Bluetooth.Core + */ +declare namespace bluetooth { + /** + * Obtains the Bluetooth status of a device. + * + * @return Returns the Bluetooth status, which can be {@link BluetoothState#STATE_OFF}, + * {@link BluetoothState#STATE_TURNING_ON}, {@link BluetoothState#STATE_ON}, {@link BluetoothState#STATE_TURNING_OFF}, + * {@link BluetoothState#STATE_BLE_TURNING_ON}, {@link BluetoothState#STATE_BLE_ON}, + * or {@link BluetoothState#STATE_BLE_TURNING_OFF}. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getState(): BluetoothState; + + /** + * Get the local device connection state to any profile of any remote device. + * + * @return One of {@link ProfileConnectionState#STATE_DISCONNECTED}, + * {@link ProfileConnectionState#STATE_CONNECTING}, {@link ProfileConnectionState#STATE_CONNECTED}, + * {@link ProfileConnectionState#STATE_DISCONNECTING}. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getBtConnectionState(): ProfileConnectionState; + + /** + * Starts pairing with a remote Bluetooth device. + * + * @param deviceId The address of the remote device to pair. + * @return Returns {@code true} if the pairing process is started; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function pairDevice(deviceId: string): boolean; + + /** + * Remove a paired remote device. + * + * @param deviceId The address of the remote device to be removed. + * @return Returns {@code true} if the cancel process is started; returns {@code false} otherwise. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + * @systemapi Hide this for inner system use + */ + function cancelPairedDevice(deviceId: string): boolean; + + /** + * Obtains the name of a peer Bluetooth device. + * + * @param deviceId The address of the remote device. + * @return Returns the device name in character string format. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getRemoteDeviceName(deviceId: string): string; + + /** + * Obtains the class of a peer Bluetooth device. + * + * @param deviceId The address of the remote device. + * @return The class of the remote device, {@link DeviceClass}. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getRemoteDeviceClass(deviceId: string): DeviceClass; + + /** + * Enables Bluetooth on a device. + * + * @return Returns {@code true} if Bluetooth is being enabled; returns {@code false} if an error occurs. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function enableBluetooth(): boolean; + + /** + * Disables Bluetooth on a device. + * + * @return Returns {@code true} if Bluetooth is being disabled; returns {@code false} if an error occurs. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function disableBluetooth(): boolean; + + /** + * Obtains the Bluetooth local name of a device. + * + * @return Returns the name the device. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getLocalName(): string; + + /** + * Obtains the list of Bluetooth devices that have been paired with the current device. + * + * @return Returns a list of paired Bluetooth devices's address. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getPairedDevices(): Array; + + /** + * Obtains the connection state of profile. + * + * @param profileId The profile id. + * @return Returns the connection state. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getProfileConnState(profileId: ProfileId): ProfileConnectionState; + + /** + * Sets the confirmation of pairing with a certain device. + * + * @param device The address of the remote device. + * @param accept Indicates whether to accept the pairing request, {@code true} indicates accept or {@code false} otherwise. + * @return Returns {@code true} if the pairing confirmation is set; returns {@code false} otherwise. + * @since 8 + * @permission ohos.permission.MANAGE_BLUETOOTH + */ + function setDevicePairingConfirmation(device: string, accept: boolean): boolean; + + /** + * Sets the Bluetooth friendly name of a device. + * + * @param name Indicates a valid Bluetooth name. + * @return Returns {@code true} if the Bluetooth name is set successfully; returns {@code false} otherwise. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function setLocalName(name: string): boolean; + + /** + * Sets the Bluetooth scan mode for a device. + * + * @param mode Indicates the Bluetooth scan mode to set, {@link ScanMode}. + * @param duration Indicates the duration in seconds, in which the host is discoverable. + * @return Returns {@code true} if the Bluetooth scan mode is set; returns {@code false} otherwise. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function setBluetoothScanMode(mode: ScanMode, duration: number): boolean; + + /** + * Obtains the Bluetooth scanning mode of a device. + * + * @return Returns the Bluetooth scanning mode, {@link ScanMode}. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getBluetoothScanMode(): ScanMode; + + /** + * Starts scanning Bluetooth devices. + * + * @return Returns {@code true} if the scan is started successfully; returns {@code false} otherwise. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH and ohos.permission.LOCATION + */ + function startBluetoothDiscovery(): boolean; + + /** + * Stops Bluetooth device scanning. + * + * @return Returns {@code true} if scanning is stopped successfully; returns {@code false} otherwise. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function stopBluetoothDiscovery(): boolean; + + /** + * Subscribe the event reported when a remote Bluetooth device is discovered. + * + * @param type Type of the discovering event to listen for. + * @param callback Callback used to listen for the discovering event. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function on(type: "bluetoothDeviceFind", callback: Callback>): void; + + /** + * Unsubscribe the event reported when a remote Bluetooth device is discovered. + * + * @param type Type of the discovering event to listen for. + * @param callback Callback used to listen for the discovering event. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function off(type: "bluetoothDeviceFind", callback?: Callback>): void; + + /** + * Subscribe the event reported when a remote Bluetooth device is bonded. + * + * @param type Type of the bond state event to listen for. + * @param callback Callback used to listen for the bond state event, {@link BondStateParam}. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function on(type: "bondStateChange", callback: Callback): void; + + /** + * Unsubscribe the event reported when a remote Bluetooth device is bonded. + * + * @param type Type of the bond state event to listen for. + * @param callback Callback used to listen for the bond state event. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function off(type: "bondStateChange", callback?: Callback): void; + + /** + * Subscribe the event of a pairing request from a remote Bluetooth device. + * + * @param type Type of the pairing request event to listen for. + * @param callback Callback used to listen for the pairing request event. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function on(type: "pinRequired", callback: Callback): void; + + /** + * Unsubscribe the event of a pairing request from a remote Bluetooth device. + * + * @param type Type of the pairing request event to listen for. + * @param callback Callback used to listen for the pairing request event. + * @since 8 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function off(type: "pinRequired", callback?: Callback): void; + + /** + * Subscribe the event reported when the Bluetooth state changes. + * + * @param type Type of the Bluetooth state changes event to listen for. + * @param callback Callback used to listen for the Bluetooth state event. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function on(type: "stateChange", callback: Callback): void; + + /** + * Unsubscribe the event reported when the Bluetooth state changes. + * + * @param type Type of the Bluetooth state changes event to listen for. + * @param callback Callback used to listen for the Bluetooth state event. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function off(type: "stateChange", callback?: Callback): void; + + /** + * Creates a Bluetooth server listening socket. + * + * @param name Indicates the service name. + * @param option Indicates the listen parameters {@link SppOption}. + * @param callback Callback used to return a server socket ID. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function sppListen(name: string, option: SppOption, callback: AsyncCallback): void; + + /** + * Waits for a remote device to connect. + * + * @param serverSocket Indicates the server socket ID, returned by {@link sppListen}. + * @param callback Callback used to return a client socket ID. + * @since 8 + */ + function sppAccept(serverSocket: number, callback: AsyncCallback): void; + + /** + * Connects to a remote device over the socket. + * + * @param device The address of the remote device to connect. + * @param option Indicates the connect parameters {@link SppOption}. + * @param callback Callback used to return a client socket ID. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + function sppConnect(device: string, option: SppOption, callback: AsyncCallback): void; + + /** + * Disables an spp server socket and releases related resources. + * + * @param socket Indicates the server socket ID, returned by {@link sppListen}. + * @since 8 + */ + function sppCloseServerSocket(socket: number): void; + + /** + * Disables an spp client socket and releases related resources. + * + * @param socket Indicates the client socket ID, returned by {@link sppAccept} or {@link sppConnect}. + * @since 8 + */ + function sppCloseClientSocket(socket: number): void; + + /** + * Write data through the socket. + * + * @param clientSocket Indicates the client socket ID, returned by {@link sppAccept} or {@link sppConnect}. + * @param data Indicates the data to write. + * @return Returns {@code true} if the data is write successfully; returns {@code false} otherwise. + * @since 8 + */ + function sppWrite(clientSocket: number, data: ArrayBuffer): boolean; + + /** + * Subscribe the event reported when data is read from the socket. + * + * @param type Type of the spp read event to listen for. + * @param callback Callback used to listen for the spp read event. + * @since 8 + */ + function on(type: "sppRead", clientSocket: number, callback: Callback): void; + + /** + * Unsubscribe the event reported when data is read from the socket. + * + * @param type Type of the spp read event to listen for. + * @param callback Callback used to listen for the spp read event. + * @since 8 + */ + function off(type: "sppRead", clientSocket: number, callback?: Callback): void; + + /** + * Obtains the instance of profile. + * + * @param profileId The profile id.. + * @return Returns instance of profile. + * @since 8 + */ + function getProfile(profileId: ProfileId): A2dpSourceProfile | A2dpSinkProfile | AvrcpProfile | HandsFreeAudioGatewayProfile | HandsFreeUnitProfile | HidHostProfile | PanProfile | PbapClientProfile |OppProfile | PbapServerProfile ; + + /** + * Obtains the instance of profile. + * + * @param profileId The profile id.. + * @return Returns instance of profile. + * @since 9 + */ + function getProfileInst(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile | PanProfile; + + /** + * Base interface of profile. + */ + interface BaseProfile { + /** + * Obtains the connected devices list of profile. + * + * @return Returns the address of connected devices list. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + getConnectionDevices(): Array; + + /** + * Obtains the profile state of device. + * + * @param device The address of bluetooth device. + * @return Returns {@link ProfileConnectionState} of device. + * @since 8 + * @permission ohos.permission.USE_BLUETOOTH + */ + getDeviceState(device: string): ProfileConnectionState; + } + + /** + * Manager a2dp source profile. + */ + interface A2dpSourceProfile extends BaseProfile { + /** + * Connect to device with a2dp. + * + * @param device The address of the remote device to connect. + * @return Returns {@code true} if the connect is in process; returns {@code false} otherwise. + * @since 8 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + */ + connect(device: string): boolean; + + /** + * Disconnect to device with a2dp. + * + * @param device The address of the remote device to disconnect. + * @return Returns {@code true} if the disconnect is in process; returns {@code false} otherwise. + * @since 8 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + */ + disconnect(device: string): boolean; + + /** + * Subscribe the event reported when the profile connection state changes . + * + * @param type Type of the profile connection state changes event to listen for . + * @param callback Callback used to listen for event. + * @since 8 + */ + on(type: "connectionStateChange", callback: Callback): void; + + /** + * Unsubscribe the event reported when the profile connection state changes . + * + * @param type Type of the profile connection state changes event to listen for . + * @param callback Callback used to listen for event. + * @since 8 + */ + off(type: "connectionStateChange", callback?: Callback): void; + + /** + * Obtains the playing state of device. + * + * @param device The address of the remote device. + * @return Returns {@link PlayingState} of the remote device. + * @since 8 + */ + getPlayingState(device: string): PlayingState; + } + + /** + * Manager handsfree AG profile. + */ + interface HandsFreeAudioGatewayProfile extends BaseProfile { + /** + * Connect to device with hfp. + * + * @param device The address of the remote device to connect. + * @return Returns {@code true} if the connect is in process; returns {@code false} otherwise. + * @since 8 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + */ + connect(device: string): boolean; + + /** + * Disconnect to device with hfp. + * + * @param device The address of the remote device to disconnect. + * @return Returns {@code true} if the disconnect is in process; returns {@code false} otherwise. + * @since 8 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + */ + disconnect(device: string): boolean; + + /** + * Subscribe the event reported when the profile connection state changes . + * + * @param type Type of the profile connection state changes event to listen for . + * @param callback Callback used to listen for event. + * @since 8 + */ + on(type: "connectionStateChange", callback: Callback): void; + + /** + * Unsubscribe the event reported when the profile connection state changes . + * + * @param type Type of the profile connection state changes event to listen for . + * @param callback Callback used to listen for event. + * @since 8 + */ + off(type: "connectionStateChange", callback?: Callback): void; + } + + /** + * Manager hid host profile. + */ + interface HidHostProfile extends BaseProfile { + /** + * Connect to device with hid host. + * + * @param device The address of the remote device to connect. + * @return Returns {@code true} if the connect is in process; returns {@code false} otherwise. + * @since 9 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + * @systemapi Hide this for inner system use. + */ + connect(device: string): boolean; + + /** + * Disconnect to device with hid host. + * + * @param device The address of the remote device to disconnect. + * @return Returns {@code true} if the disconnect is in process; returns {@code false} otherwise. + * @since 9 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + * @systemapi Hide this for inner system use. + */ + disconnect(device: string): boolean; + + /** + * Subscribe the event reported when the profile connection state changes . + * + * @param type Type of the profile connection state changes event to listen for . + * @param callback Callback used to listen for event. + * @since 9 + */ + on(type: "connectionStateChange", callback: Callback): void; + + /** + * Unsubscribe the event reported when the profile connection state changes. + * + * @param type Type of the profile connection state changes event to listen for. + * @param callback Callback used to listen for event. + * @since 9 + */ + off(type: "connectionStateChange", callback?: Callback): void; + } + + /** + * Manager pan profile. + */ + interface PanProfile extends BaseProfile { + /** + * Disconnect to device with pan. + * + * @param device The address of the remote device to disconnect. + * @return Returns {@code true} if the disconnect is in process; returns {@code false} otherwise. + * @since 9 + * @permission permission ohos.permission.USE_BLUETOOTH + * @systemapi Hide this for inner system use. + */ + disconnect(device: string): boolean; + + /** + * Subscribe the event reported when the profile connection state changes . + * + * @param type Type of the profile connection state changes event to listen for . + * @param callback Callback used to listen for event. + * @since 9 + */ + on(type: "connectionStateChange", callback: Callback): void; + + /** + * Unsubscribe the event reported when the profile connection state changes. + * + * @param type Type of the profile connection state changes event to listen for. + * @param callback Callback used to listen for event. + * @since 9 + */ + off(type: "connectionStateChange", callback?: Callback): void; + + /** + * Enable bluetooth tethering. + * + * @param enable Specifies whether to enable tethering. The value {@code true} indicates + * that tethering is enabled, and the value {@code false} indicates that tethering is disabled. + * @since 9 + * @permission permission ohos.permission.DISCOVER_BLUETOOTH + * @systemapi Hide this for inner system use. + */ + setTethering(enable: boolean): void; + + /** + * Obtains the tethering enable or disable. + * + * @return Returns the value {@code true} is tethering is on, returns {@code false} otherwise. + * @since 9 + * @systemapi Hide this for inner system use. + */ + isTetheringOn(): boolean; + } + + /** + * Manager AvrcpProfile profile. + */ + interface AvrcpProfile extends BaseProfile { + on(type: "connectionStateChange", callback: AsyncCallback): void; + off(type: "connectionStateChange", callback?: AsyncCallback): void; + } + + /** + * Manager HandsFreeUnitProfile profile. + */ + interface HandsFreeUnitProfile extends BaseProfile { + getScoState(device: string): number; + connect(device: string): boolean; + disconnect(device: string): boolean; + on(type: "connectionStateChange", callback: AsyncCallback): void; + off(type: "connectionStateChange", callback?: AsyncCallback): void; + connectSco(device: string): boolean; + disconnectSco(device: string): boolean; + on(type: "scoStateChange", callback: AsyncCallback): void; + off(type: "scoStateChange", callback?: AsyncCallback): void; + sendDTMF(device: string, digit: number): void; + } + + /** + * Manager PbapClientProfile profile. + */ + interface PbapClientProfile extends BaseProfile { + connect(device: string): boolean; + disconnect(device: string): boolean; + on(type: "connectionStateChange", callback: AsyncCallback): void; + off(type: "connectionStateChange", callback?: AsyncCallback): void; + } + + /** + * Manager PbapServerProfile profile. + */ + interface PbapServerProfile extends BaseProfile { + disconnect(device: string): boolean; + on(type: "connectionStateChange", callback: AsyncCallback): void; + off(type: "connectionStateChange", callback?: AsyncCallback): void; + } + + /** + * Manager OppProfile profile. + */ + interface OppProfile extends BaseProfile { + on(type: "transferStateChange", callback: Callback): void; + off(type: "transferStateChange"): void; + on(type: "receiveIncomingFile", callback: Callback): void; + off(type: "receiveIncomingFile"): void; + sendFile(device: string, filePaths: Array): boolean; + setIncomingFileConfirmation(accept: boolean, fileFd:number): boolean; + getCurrentTransferInformation(): BluetoothOppTransferInformation; + cancelTransfer(): boolean; + } + + /** + * Manager A2dpSinkProfile profile. + */ + interface A2dpSinkProfile extends BaseProfile { + connect(device: string): boolean; + disconnect(device: string): boolean; + getPlayingState(device: string): number; + on(type: "connectionStateChange", callback: AsyncCallback): void; + off(type: "connectionStateChange", callback?: AsyncCallback): void; + } + + + + namespace BLE { + /** + * create a JavaScript Gatt server instance. + * + * @return Returns a JavaScript Gatt server instance {@code GattServer}. + * @since 7 + */ + function createGattServer(): GattServer; + + /** + * create a JavaScript Gatt client device instance. + * + * @param deviceId The address of the remote device. + * @return Returns a JavaScript Gatt client device instance {@code GattClientDevice}. + * @since 7 + */ + function createGattClientDevice(deviceId: string): GattClientDevice; + + /** + * Obtains the list of devices in the connected status. + * + * @return Returns the list of device address. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + function getConnectedBLEDevices(): Array; + + /** + * Starts scanning for specified BLE devices with filters. + * + * @param filters Indicates the list of filters used to filter out specified devices. + * If you do not want to use filter, set this parameter to {@code null}. + * @param options Indicates the parameters for scanning and if the user does not assign a value, the default value will be used. + * {@link ScanOptions#interval} set to 0, {@link ScanOptions#dutyMode} set to {@link SCAN_MODE_LOW_POWER} + * and {@link ScanOptions#matchMode} set to {@link MATCH_MODE_AGGRESSIVE}. + * @since 7 + * @permission ohos.permission.DISCOVER_BLUETOOTH and ohos.permission.MANAGE_BLUETOOTH and ohos.permission.LOCATION + */ + function startBLEScan(filters: Array, options?: ScanOptions): void; + + /** + * Stops BLE scanning. + * + * @since 7 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + function stopBLEScan(): void; + + /** + * Subscribe BLE scan result. + * + * @param type Type of the scan result event to listen for. + * @param callback Callback used to listen for the scan result event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + function on(type: "BLEDeviceFind", callback: Callback>): void; + + /** + * Unsubscribe BLE scan result. + * + * @param type Type of the scan result event to listen for. + * @param callback Callback used to listen for the scan result event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + function off(type: "BLEDeviceFind", callback?: Callback>): void; + } + + /** + * Manages GATT server. Before calling an Gatt server method, you must use {@link createGattServer} to create an GattServer instance. + */ + interface GattServer { + /** + * Starts BLE advertising. + * + * @param setting Indicates the settings for BLE advertising. + * If you need to use the default value, set this parameter to {@code null}. + * @param advData Indicates the advertising data. + * @param advResponse Indicates the scan response associated with the advertising data. + * @since 7 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + startAdvertising(setting: AdvertiseSetting, advData: AdvertiseData, advResponse?: AdvertiseData): void; + + /** + * Stops BLE advertising. + * + * @since 7 + * @permission ohos.permission.DISCOVER_BLUETOOTH + */ + stopAdvertising(): void; + + /** + * Adds a specified service to be hosted. + * + *

The added service and its characteristics are provided by the local device. + * + * @param service Indicates the service to add. + * @return Returns {@code true} if the service is added; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + addService(service: GattService): boolean; + + /** + * Removes a specified service from the list of GATT services provided by this device. + * + * @param serviceUuid Indicates the UUID of the service to remove. + * @return Returns {@code true} if the service is removed; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + removeService(serviceUuid: string): boolean; + + /** + * Closes this {@code GattServer} object and unregisters its callbacks. + * + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + close(): void; + + /** + * Sends a notification of a change in a specified local characteristic. + * + *

This method should be called for every BLE peripheral device that has requested notifications. + * + * @param deviceId Indicates the address of the BLE peripheral device to receive the notification. + * @param notifyCharacteristic Indicates the local characteristic that has changed. + * @return Returns {@code true} if the notification is sent successfully; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + notifyCharacteristicChanged(deviceId: string, notifyCharacteristic: NotifyCharacteristic): boolean; + + /** + * Sends a response to a specified read or write request to a given BLE peripheral device. + * + * @param serverResponse Indicates the response parameters {@link ServerResponse}. + * @return Returns {@code true} if the response is sent successfully; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + sendResponse(serverResponse: ServerResponse): boolean; + + /** + * Subscribe characteristic read event. + * + * @param type Type of the characteristic read event to listen for. + * @param callback Callback used to listen for the characteristic read event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "characteristicRead", callback: Callback): void; + + /** + * Unsubscribe characteristic read event. + * + * @param type Type of the characteristic read event to listen for. + * @param callback Callback used to listen for the characteristic read event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "characteristicRead", callback?: Callback): void; + + /** + * Subscribe characteristic write event. + * + * @param type Type of the characteristic write event to listen for. + * @param callback Callback used to listen for the characteristic write event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "characteristicWrite", callback: Callback): void; + + /** + * Unsubscribe characteristic write event. + * + * @param type Type of the characteristic write event to listen for. + * @param callback Callback used to listen for the characteristic write event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "characteristicWrite", callback?: Callback): void; + + /** + * Subscribe descriptor read event. + * + * @param type Type of the descriptor read event to listen for. + * @param callback Callback used to listen for the descriptor read event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "descriptorRead", callback: Callback): void; + + /** + * Unsubscribe descriptor read event. + * + * @param type Type of the descriptor read event to listen for. + * @param callback Callback used to listen for the descriptor read event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "descriptorRead", callback?: Callback): void; + + /** + * Subscribe descriptor write event. + * + * @param type Type of the descriptor write event to listen for. + * @param callback Callback used to listen for the descriptor write event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "descriptorWrite", callback: Callback): void; + + /** + * Unsubscribe descriptor write event. + * + * @param type Type of the descriptor write event to listen for. + * @param callback Callback used to listen for the descriptor write event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "descriptorWrite", callback?: Callback): void; + + /** + * Subscribe server connection state changed event. + * + * @param type Type of the connection state changed event to listen for. + * @param callback Callback used to listen for the connection state changed event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "connectStateChange", callback: Callback): void; + + /** + * Unsubscribe server connection state changed event. + * + * @param type Type of the connection state changed event to listen for. + * @param callback Callback used to listen for the connection state changed event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "connectStateChange", callback?: Callback): void; + } + + /** + * Manages GATT client. Before calling an Gatt client method, you must use {@link createGattClientDevice} to create an GattClientDevice instance. + */ + interface GattClientDevice { + + /** + * Connects to a BLE peripheral device. + * + *

The 'BLEConnectionStateChange' event is subscribed to return the connection state. + * + * @return Returns {@code true} if the connection process starts; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + connect(): boolean; + + /** + * Disconnects from or stops an ongoing connection to a BLE peripheral device. + * + * @return Returns {@code true} if the disconnection process starts; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + disconnect(): boolean; + + /** + * Disables a BLE peripheral device. + * + *

This method unregisters the device and clears the registered callbacks and handles. + * + * @return Returns {@code true} if the the device is disabled; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + close(): boolean; + + /** + * Obtains the name of BLE peripheral device. + * + * @return Returns a string representation of the name if obtained; + * returns {@code null} if the name fails to be obtained or the name does not exist. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + getDeviceName(callback: AsyncCallback): void; + getDeviceName(): Promise; + + /** + * Starts discovering services. + * + * @return Returns the list of services {@link GattService} of the BLE peripheral device. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + getServices(callback: AsyncCallback>): void; + getServices(): Promise>; + + /** + * Reads the characteristic of a BLE peripheral device. + * + * @param characteristic Indicates the characteristic to read. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + readCharacteristicValue(characteristic: BLECharacteristic, callback: AsyncCallback): void; + readCharacteristicValue(characteristic: BLECharacteristic): Promise; + + /** + * Reads the descriptor of a BLE peripheral device. + * + * @param descriptor Indicates the descriptor to read. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + readDescriptorValue(descriptor: BLEDescriptor, callback: AsyncCallback): void; + readDescriptorValue(descriptor: BLEDescriptor): Promise; + + /** + * Writes the characteristic of a BLE peripheral device. + * + * @param characteristic Indicates the characteristic to write. + * @return Returns {@code true} if the characteristic is written successfully; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + writeCharacteristicValue(characteristic: BLECharacteristic): boolean; + + /** + * Writes the descriptor of a BLE peripheral device. + * + * @param descriptor Indicates the descriptor to write. + * @return Returns {@code true} if the descriptor is written successfully; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + writeDescriptorValue(descriptor: BLEDescriptor): boolean; + + /** + * Get the RSSI value of this BLE peripheral device. + * + * @return Returns the RSSI value. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + getRssiValue(callback: AsyncCallback): void; + getRssiValue(): Promise; + + /** + * Set the mtu size of a BLE peripheral device. + * + * @param mtu The maximum transmission unit. + * @return Returns {@code true} if the set mtu is successfully; returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + setBLEMtuSize(mtu: number): boolean; + + /** + * Enables or disables notification of a characteristic when value changed. + * + * @param enable Specifies whether to enable notification of the characteristic. The value {@code true} indicates + * that notification is enabled, and the value {@code false} indicates that notification is disabled. + * @return Returns {@code true} if notification of the characteristic is enabled or disabled; + * returns {@code false} otherwise. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + setNotifyCharacteristicChanged(characteristic: BLECharacteristic, enable: boolean): boolean; + + /** + * Subscribe characteristic value changed event. + * + * @param type Type of the characteristic value changed event to listen for. + * @param callback Callback used to listen for the characteristic value changed event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "BLECharacteristicChange", callback: Callback): void; + + /** + * Unsubscribe characteristic value changed event. + * + * @param type Type of the characteristic value changed event to listen for. + * @param callback Callback used to listen for the characteristic value changed event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "BLECharacteristicChange", callback?: Callback): void; + + /** + * Subscribe client connection state changed event. + * + * @param type Type of the connection state changed event to listen for. + * @param callback Callback used to listen for the connection state changed event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + on(type: "BLEConnectionStateChange", callback: Callback): void; + + /** + * Unsubscribe client connection state changed event. + * + * @param type Type of the connection state changed event to listen for. + * @param callback Callback used to listen for the connection state changed event. + * @since 7 + * @permission ohos.permission.USE_BLUETOOTH + */ + off(type: "BLEConnectionStateChange", callback?: Callback): void; + } + + /** + * Describes the Gatt service. + * + * @devices phone, tablet + * @since 7 + */ + interface GattService { + /** The UUID of a GattService instance */ + serviceUuid: string; + /** Indicates whether the GattService instance is primary or secondary. */ + isPrimary: boolean; + /** The {@link BLECharacteristic} list belongs to this GattService instance */ + characteristics: Array; + /** The list of GATT services contained in the service */ + includeServices?: Array; + } + + /** + * Describes the Gatt characteristic. + * + * @devices phone, tablet + * @since 7 + */ + interface BLECharacteristic { + /** The UUID of the {@link GattService} instance to which the characteristic belongs */ + serviceUuid: string; + /** The UUID of a BLECharacteristic instance */ + characteristicUuid: string; + /** The value of a BLECharacteristic instance */ + characteristicValue: ArrayBuffer; + /** The list of {@link BLEDescriptor} contained in the characteristic */ + descriptors: Array; + } + + /** + * Describes the Gatt descriptor. + * + * @devices phone, tablet + * @since 7 + */ + interface BLEDescriptor { + /** The UUID of the {@link GattService} instance to which the descriptor belongs */ + serviceUuid: string; + /** The UUID of the {@link BLECharacteristic} instance to which the descriptor belongs */ + characteristicUuid: string; + /** The UUID of the BLEDescriptor instance */ + descriptorUuid: string; + /** The value of the BLEDescriptor instance */ + descriptorValue: ArrayBuffer; + } + + /** + * Describes the value of the indication or notification sent by the Gatt server. + * + * @devices phone, tablet + * @since 7 + */ + interface NotifyCharacteristic { + /** The UUID of the {@link GattService} instance to which the characteristic belongs */ + serviceUuid: string; + /** The UUID of a NotifyCharacteristic instance */ + characteristicUuid: string; + /** The value of a NotifyCharacteristic instance */ + characteristicValue: ArrayBuffer; + /** + * Specifies whether to request confirmation from the BLE peripheral device (indication) or + * send a notification. Value {@code true} indicates the former and {@code false} indicates the latter. + */ + confirm: boolean; + } + + /** + * Describes the parameters of the Gatt client's characteristic read request. + * + * @devices phone, tablet + * @since 7 + */ + interface CharacteristicReadReq { + /** Indicates the address of the client that initiates the read request */ + deviceId: string; + /** The Id of the read request */ + transId: number; + /** Indicates the byte offset of the start position for reading characteristic value */ + offset: number; + /** The UUID of a CharacteristicReadReq instance */ + characteristicUuid: string; + /** The UUID of the service to which the characteristic belongs */ + serviceUuid: string; + } + + /** + * Describes the parameters of the of the Gatt client's characteristic write request. + * + * @devices phone, tablet + * @since 7 + */ + interface CharacteristicWriteReq { + /** Indicates the address of the client that initiates the write request */ + deviceId: string; + /** The Id of the write request */ + transId: number; + /** Indicates the byte offset of the start position for writing characteristic value */ + offset: number; + /** Whether this request should be pending for later operation */ + isPrep: boolean; + /** Whether the remote client need a response */ + needRsp: boolean; + /** Indicates the value to be written */ + value: ArrayBuffer; + /** The UUID of a CharacteristicWriteReq instance */ + characteristicUuid: string; + /** The UUID of the service to which the characteristic belongs */ + serviceUuid: string; + } + + /** + * Describes the parameters of the Gatt client's descriptor read request. + * + * @devices phone, tablet + * @since 7 + */ + interface DescriptorReadReq { + /** Indicates the address of the client that initiates the read request */ + deviceId: string; + /** The Id of the read request */ + transId: number; + /** Indicates the byte offset of the start position for reading characteristic value */ + offset: number; + /** The UUID of a DescriptorReadReq instance */ + descriptorUuid: string; + /** The UUID of the characteristic to which the descriptor belongs */ + characteristicUuid: string; + /** The UUID of the service to which the descriptor belongs */ + serviceUuid: string; + } + + /** + * Describes the parameters of the Gatt client's characteristic write request. + * + * @devices phone, tablet + * @since 7 + */ + interface DescriptorWriteReq { + /** Indicates the address of the client that initiates the write request */ + deviceId: string; + /** The Id of the write request */ + transId: number; + /** Indicates the byte offset of the start position for writing characteristic value */ + offset: number; + /** Whether this request should be pending for later operation */ + isPrep: boolean; + /** Whether the remote client need a response */ + needRsp: boolean; + /** Indicates the value to be written */ + value: ArrayBuffer; + /** The UUID of a DescriptorWriteReq instance */ + descriptorUuid: string; + /** The UUID of the characteristic to which the descriptor belongs */ + characteristicUuid: string; + /** The UUID of the service to which the descriptor belongs */ + serviceUuid: string; + } + + /** + * Describes the parameters of a response send by the server to a specified read or write request. + * + * @devices phone, tablet + * @since 7 + */ + interface ServerResponse { + /** Indicates the address of the client to which to send the response */ + deviceId: string; + /** The Id of the write request */ + transId: number; + /** Indicates the status of the read or write request, set this parameter to '0' in normal cases */ + status: number; + /** Indicates the byte offset of the start position for reading or writing operation */ + offset: number; + /** Indicates the value to be sent */ + value: ArrayBuffer; + } + + /** + * Describes the Gatt profile connection state. + * + * @devices phone, tablet + * @since 7 + */ + interface BLEConnectChangedState { + /** Indicates the peer device address */ + deviceId: string; + /** Connection state of the Gatt profile */ + state: ProfileConnectionState; + } + + /** + * Describes the contents of the scan results. + * + * @devices phone, tablet + * @since 7 + */ + interface ScanResult { + /** Address of the scanned device */ + deviceId: string; + /** RSSI of the remote device */ + rssi: number; + /** The raw data of broadcast packet */ + data: ArrayBuffer; + } + + /** + * Describes the settings for BLE advertising. + * + * @devices phone, tablet + * @since 7 + */ + interface AdvertiseSetting { + /** + * Minimum slot value for the advertising interval, which is {@code 32} (20 ms) + * Maximum slot value for the advertising interval, which is {@code 16777215} (10485.759375s) + * Default slot value for the advertising interval, which is {@code 1600} (1s) + */ + interval?: number; + /** + * Minimum transmission power level for advertising, which is {@code -127} + * Maximum transmission power level for advertising, which is {@code 1} + * Default transmission power level for advertising, which is {@code -7} + */ + txPower?: number; + /** Indicates whether the BLE is connectable, default is {@code true} */ + connectable?: boolean; + } + + /** + * Describes the advertising data. + * + * @devices phone, tablet + * @since 7 + */ + interface AdvertiseData { + /** The specified service UUID list to this advertisement */ + serviceUuids: Array; + /** The specified manufacturer data list to this advertisement */ + manufactureData: Array; + /** The specified service data list to this advertisement */ + serviceData: Array; + } + + /** + * Describes the manufacturer data. + * + * @devices phone, tablet + * @since 7 + */ + interface ManufactureData { + /** Indicates the manufacturer ID assigned by Bluetooth SIG */ + manufactureId: number; + /** Indicates the manufacturer data to add */ + manufactureValue: ArrayBuffer; + } + + /** + * Describes the service data. + * + * @devices phone, tablet + * @since 7 + */ + interface ServiceData { + /** Indicates the UUID of the service data to add */ + serviceUuid: string; + /** Indicates the service data to add */ + serviceValue: ArrayBuffer; + } + + /** + * Describes the criteria for filtering scanning results can be set. + * + * @devices phone, tablet + * @since 7 + */ + interface ScanFilter { + /** + * The address of a BLE peripheral device + * @since 7 + */ + deviceId?: string; + + /** + * The name of a BLE peripheral device + * @since 7 + */ + name?: string; + + /** + * The service UUID of a BLE peripheral device + * @since 7 + */ + serviceUuid?: string; + + /** + * Service UUID mask. + * @since 9 + */ + serviceUuidMask?: string; + + /** + * Service solicitation UUID mask. + * @since 9 + */ + serviceSolicitationUuid?: string; + + /** + * Service solicitation UUID mask. + * @since 9 + */ + serviceSolicitationUuidMask?: string; + + /** + * Service data. + * @since 9 + */ + serviceData?: ArrayBuffer; + + /** + * Service data mask. + * @since 9 + */ + serviceDataMask?: ArrayBuffer; + + /** + * Manufacture id. + * @since 9 + */ + manufactureId?: number; + + /** + * Manufacture data. + * @since 9 + */ + manufactureData?: ArrayBuffer; + + /** + * Manufacture data mask. + * @since 9 + */ + manufactureDataMask?: ArrayBuffer; + } + + /** + * Describes the parameters for scan. + * + * @devices phone, tablet + * @since 7 + */ + interface ScanOptions { + /** Time of delay for reporting the scan result */ + interval?: number; + /** Bluetooth LE scan mode */ + dutyMode?: ScanDuty; + /** Match mode for Bluetooth LE scan filters hardware match */ + matchMode?: MatchMode; + } + + /** + * Describes the spp parameters. + * + * @devices phone, tablet + * @since 7 + */ + interface SppOption { + /** Indicates the UUID in the SDP record. */ + uuid: string; + /** Indicates secure channel or not */ + secure: boolean; + /** Spp link type {@link SppType}*/ + type: SppType; + } + /** + * Describes the bond key param. + * + * @since 8 + */ + interface PinRequiredParam { + deviceId: string; + pinCode: string; + } + + /** +* Describes the class of a bluetooth device. +* +* @since 8 +*/ + interface DeviceClass { + majorClass: MajorClass; + majorMinorClass: MajorMinorClass; + classOfDevice: number; + } + + /** + * Describes the class of a bluetooth device. + * + * @since 8 + */ + interface BondStateParam { + deviceId: string; + state: BondState; + } + + + + /** + * Describes the opp BluetoothOppTransferInformation. + * + * @devices phone, tablet + * @since 9 + */ + interface BluetoothOppTransferInformation { + id: number; + fileName: string; + filePath: string; + mimeType: string; + deviceName: string; + deviceAddress: string; + direction: number; + status: number; + failedReason: number; + timeStamp: number; + currentBytes: number; + totalBytes: number; + } + + enum ScanDuty { + /** low power mode */ + SCAN_MODE_LOW_POWER = 0, + /** balanced power mode */ + SCAN_MODE_BALANCED = 1, + /** Scan using highest duty cycle */ + SCAN_MODE_LOW_LATENCY = 2 + } + + enum MatchMode { + /** aggressive mode */ + MATCH_MODE_AGGRESSIVE = 1, + /** sticky mode */ + MATCH_MODE_STICKY = 2 + } + + enum ProfileConnectionState { + /** the current profile is disconnected */ + STATE_DISCONNECTED = 0, + /** the current profile is being connected */ + STATE_CONNECTING = 1, + /** the current profile is connected */ + STATE_CONNECTED = 2, + /** the current profile is being disconnected */ + STATE_DISCONNECTING = 3 + } + + enum BluetoothState { + /** Indicates the local Bluetooth is off */ + STATE_OFF = 0, + /** Indicates the local Bluetooth is turning on */ + STATE_TURNING_ON = 1, + /** Indicates the local Bluetooth is on, and ready for use */ + STATE_ON = 2, + /** Indicates the local Bluetooth is turning off */ + STATE_TURNING_OFF = 3, + /** Indicates the local Bluetooth is turning LE mode on */ + STATE_BLE_TURNING_ON = 4, + /** Indicates the local Bluetooth is in LE only mode */ + STATE_BLE_ON = 5, + /** Indicates the local Bluetooth is turning off LE only mode */ + STATE_BLE_TURNING_OFF = 6 + } + + /** + * The enum of SPP type. + * + * @since 8 + */ + enum SppType { + /** RFCOMM */ + SPP_RFCOMM + } + + /** + * The enum of BR scan mode. + * + * @since 8 + */ + enum ScanMode { + /** Indicates the scan mode is none */ + SCAN_MODE_NONE = 0, + /** Indicates the scan mode is connectable */ + SCAN_MODE_CONNECTABLE = 1, + /** Indicates the scan mode is general discoverable */ + SCAN_MODE_GENERAL_DISCOVERABLE = 2, + /** Indicates the scan mode is limited discoverable */ + SCAN_MODE_LIMITED_DISCOVERABLE = 3, + /** Indicates the scan mode is connectable and general discoverable */ + SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE = 4, + /** Indicates the scan mode is connectable and limited discoverable */ + SCAN_MODE_CONNECTABLE_LIMITED_DISCOVERABLE = 5 + } + + /** + * The enum of bond state. + * + * @since 8 + */ + enum BondState { + /** Indicate the bond state is invalid */ + BOND_STATE_INVALID = 0, + /** Indicate the bond state is bonding */ + BOND_STATE_BONDING = 1, + /** Indicate the bond state is bonded*/ + BOND_STATE_BONDED = 2 + } + + /** + * The enum of major class of a bluetooth device. + * + * @since 8 + */ + enum MajorClass { + MAJOR_MISC = 0x0000, + MAJOR_COMPUTER = 0x0100, + MAJOR_PHONE = 0x0200, + MAJOR_NETWORKING = 0x0300, + MAJOR_AUDIO_VIDEO = 0x0400, + MAJOR_PERIPHERAL = 0x0500, + MAJOR_IMAGING = 0x0600, + MAJOR_WEARABLE = 0x0700, + MAJOR_TOY = 0x0800, + MAJOR_HEALTH = 0x0900, + MAJOR_UNCATEGORIZED = 0x1F00 + } + + /** + * The enum of major minor class of a bluetooth device. + * + * @since 8 + */ + enum MajorMinorClass { + // The Minor Device Class field + // Computer Major Class + COMPUTER_UNCATEGORIZED = 0x0100, + COMPUTER_DESKTOP = 0x0104, + COMPUTER_SERVER = 0x0108, + COMPUTER_LAPTOP = 0x010C, + COMPUTER_HANDHELD_PC_PDA = 0x0110, + COMPUTER_PALM_SIZE_PC_PDA = 0x0114, + COMPUTER_WEARABLE = 0x0118, + COMPUTER_TABLET = 0x011C, + + // Phone Major Class + PHONE_UNCATEGORIZED = 0x0200, + PHONE_CELLULAR = 0x0204, + PHONE_CORDLESS = 0x0208, + PHONE_SMART = 0x020C, + PHONE_MODEM_OR_GATEWAY = 0x0210, + PHONE_ISDN = 0x0214, + + // LAN/Network Access Point Major Class + NETWORK_FULLY_AVAILABLE = 0x0300, + NETWORK_1_TO_17_UTILIZED = 0x0320, + NETWORK_17_TO_33_UTILIZED = 0x0340, + NETWORK_33_TO_50_UTILIZED = 0x0360, + NETWORK_60_TO_67_UTILIZED = 0x0380, + NETWORK_67_TO_83_UTILIZED = 0x03A0, + NETWORK_83_TO_99_UTILIZED = 0x03C0, + NETWORK_NO_SERVICE = 0x03E0, + + // Audio/Video Major Class + AUDIO_VIDEO_UNCATEGORIZED = 0x0400, + AUDIO_VIDEO_WEARABLE_HEADSET = 0x0404, + AUDIO_VIDEO_HANDSFREE = 0x0408, + AUDIO_VIDEO_MICROPHONE = 0x0410, + AUDIO_VIDEO_LOUDSPEAKER = 0x0414, + AUDIO_VIDEO_HEADPHONES = 0x0418, + AUDIO_VIDEO_PORTABLE_AUDIO = 0x041C, + AUDIO_VIDEO_CAR_AUDIO = 0x0420, + AUDIO_VIDEO_SET_TOP_BOX = 0x0424, + AUDIO_VIDEO_HIFI_AUDIO = 0x0428, + AUDIO_VIDEO_VCR = 0x042C, + AUDIO_VIDEO_VIDEO_CAMERA = 0x0430, + AUDIO_VIDEO_CAMCORDER = 0x0434, + AUDIO_VIDEO_VIDEO_MONITOR = 0x0438, + AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER = 0x043C, + AUDIO_VIDEO_VIDEO_CONFERENCING = 0x0440, + AUDIO_VIDEO_VIDEO_GAMING_TOY = 0x0448, + + // Peripheral Major Class + PERIPHERAL_NON_KEYBOARD_NON_POINTING = 0x0500, + PERIPHERAL_KEYBOARD = 0x0540, + PERIPHERAL_POINTING_DEVICE = 0x0580, + PERIPHERAL_KEYBOARD_POINTING = 0x05C0, + PERIPHERAL_UNCATEGORIZED = 0x0500, + PERIPHERAL_JOYSTICK = 0x0504, + PERIPHERAL_GAMEPAD = 0x0508, + PERIPHERAL_REMOTE_CONTROL = 0x05C0, + PERIPHERAL_SENSING_DEVICE = 0x0510, + PERIPHERAL_DIGITIZER_TABLET = 0x0514, + PERIPHERAL_CARD_READER = 0x0518, + PERIPHERAL_DIGITAL_PEN = 0x051C, + PERIPHERAL_SCANNER_RFID = 0x0520, + PERIPHERAL_GESTURAL_INPUT = 0x0522, + + // Imaging Major Class + IMAGING_UNCATEGORIZED = 0x0600, + IMAGING_DISPLAY = 0x0610, + IMAGING_CAMERA = 0x0620, + IMAGING_SCANNER = 0x0640, + IMAGING_PRINTER = 0x0680, + + // Wearable Major Class + WEARABLE_UNCATEGORIZED = 0x0700, + WEARABLE_WRIST_WATCH = 0x0704, + WEARABLE_PAGER = 0x0708, + WEARABLE_JACKET = 0x070C, + WEARABLE_HELMET = 0x0710, + WEARABLE_GLASSES = 0x0714, + + // Minor Device Class field - Toy Major Class + TOY_UNCATEGORIZED = 0x0800, + TOY_ROBOT = 0x0804, + TOY_VEHICLE = 0x0808, + TOY_DOLL_ACTION_FIGURE = 0x080C, + TOY_CONTROLLER = 0x0810, + TOY_GAME = 0x0814, + + // Minor Device Class field - Health + HEALTH_UNCATEGORIZED = 0x0900, + HEALTH_BLOOD_PRESSURE = 0x0904, + HEALTH_THERMOMETER = 0x0908, + HEALTH_WEIGHING = 0x090C, + HEALTH_GLUCOSE = 0x0910, + HEALTH_PULSE_OXIMETER = 0x0914, + HEALTH_PULSE_RATE = 0x0918, + HEALTH_DATA_DISPLAY = 0x091C, + HEALTH_STEP_COUNTER = 0x0920, + HEALTH_BODY_COMPOSITION_ANALYZER = 0x0924, + HEALTH_PEAK_FLOW_MOITOR = 0x0928, + HEALTH_MEDICATION_MONITOR = 0x092C, + HEALTH_KNEE_PROSTHESIS = 0x0930, + HEALTH_ANKLE_PROSTHESIS = 0x0934, + HEALTH_GENERIC_HEALTH_MANAGER = 0x0938, + HEALTH_PERSONAL_MOBILITY_DEVICE = 0x093C, + } + + /** + * Profile state change parameters. + * + * @since 8 + */ + interface StateChangeParam { + /** The address of device */ + deviceId: string; + + /** Profile state value */ + state: ProfileConnectionState; + } + + /** + * The enum of a2dp playing state. + * + * @since 8 + */ + enum PlayingState { + STATE_NOT_PLAYING, + STATE_PLAYING, + } + + /** + * The enum of profile id. + */ + enum ProfileId { + /** + * @since 8 + */ + PROFILE_A2DP_SOURCE = 1, + + /** + * @since 8 + */ + PROFILE_HANDS_FREE_AUDIO_GATEWAY = 4, + + /** + * @since 9 + */ + PROFILE_HID_HOST = 6, + + /** + * @since 9 + */ + PROFILE_PAN_NETWORK = 7, + + /** + * @since 9 + */ + PROFILE_OPP = 10, + } +} + +export default bluetooth; diff --git a/code/Solutions/OppTrans/BluetoothOpp/AppScope/app.json5 b/code/Solutions/OppTrans/BluetoothOpp/AppScope/app.json5 new file mode 100644 index 0000000000..7f40701ae9 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/AppScope/app.json5 @@ -0,0 +1,11 @@ +{ + "app": { + "bundleName": "com.example.bluetoothopp", + "vendor": "example", + "versionCode": 1000001, + "versionName": "1.0.1", + "icon": "$media:app_icon", + "label": "$string:app_name", + "distributedNotificationEnabled": true + } +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/element/string.json b/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/element/string.json new file mode 100644 index 0000000000..63474f9804 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "蓝牙文件传输" + } + ] +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/media/app_icon.png b/code/Solutions/OppTrans/BluetoothOpp/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..380e486977b2d0259fcb3aed0f54a5e0a98ed528 GIT binary patch literal 6002 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 literal 0 HcmV?d00001 diff --git a/code/Solutions/OppTrans/BluetoothOpp/README_zh.md b/code/Solutions/OppTrans/BluetoothOpp/README_zh.md new file mode 100644 index 0000000000..bb712cdfb2 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/README_zh.md @@ -0,0 +1,29 @@ +### 介绍 + +本示例提供了蓝牙Opp文件传输功能,可实现不同设备通间蓝牙传输文件。 + +### 使用说明 + +1. 在opp接受服务端,点击"Opp接收服务端"按钮进入接收服务页面,点击"opp开启接收文件"按钮开始监听文件传输。 +2. 在opp发送服务端,点击已配对设备列表中设备名称(此时选中的设备背景色由黄色变成绿色),在第二个输入框中输入需要传输的文件名称。 +3. 在opp发送服务端,点击"oppSendFile"按钮传输文件。 +4. 在opp接收服务端,等待接收文件弹框弹出,点击"接收"按钮,开始接收文件。 + +注:
**1、两设备需处于已配对状态;
+2、opp发送端文件必须在"/data/bluetooth/log"目录下;
+3、opp接收端接收的文件在"/data/service/el1/public/bluetooth/"目录下** + + +### 相关权限 + +不涉及。 + +### 约束与限制 + +1. **需要将工程下"@ohos.bluetooth.d.ts"声明文件复制到SKD中"DevEco3.1.0.500_3.2.12.2\9\ets\api"目录下,替换原来的"@ohos.bluetooth.d.ts"声明文件** + +2. 本示例支持标准系统上运行,支持设备:7885; + +3. 本示例仅支持API9版本SDK,版本号:3.2.12.2; + +4. 本示例需要使用DevEco Studio 3.1 Canary1 (Build Version: 3.1.0.100)才可编译运行; \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/build-profile.json5 b/code/Solutions/OppTrans/BluetoothOpp/build-profile.json5 new file mode 100644 index 0000000000..0450fa3395 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/build-profile.json5 @@ -0,0 +1,40 @@ +{ + "app": { + "signingConfigs": [ + { + "name": "default", + "material": { + "certpath": "signature/bluetoothopp.cer", + "storePassword": "0000001BFA170ECDD2893BC2E4C652C7CC52A7D32971AAB3D0CFBC49DB913351B490D5EA1DAFCB759F507B", + "keyAlias": "debugKey", + "keyPassword": "0000001B90B4FD781921F33DB014FD33627C8209A428627667563728085601D62CAFD8B6EEB538D6FE6ADE", + "profile": "signature/bluetoothopp.p7b", + "signAlg": "SHA256withECDSA", + "storeFile": "signature/bluetoothopp.p12" + } + } + ], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compileSdkVersion": 10, + "compatibleSdkVersion": 9 + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/.gitignore b/code/Solutions/OppTrans/BluetoothOpp/entry/.gitignore new file mode 100644 index 0000000000..e2713a2779 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/build-profile.json5 b/code/Solutions/OppTrans/BluetoothOpp/entry/build-profile.json5 new file mode 100644 index 0000000000..2c53bb59be --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/build-profile.json5 @@ -0,0 +1,14 @@ +{ + "apiType": 'stageMode', + "buildOption": { + }, + "targets": [ + { + "name": "default", + "runtimeOS": "OpenHarmony" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/hvigorfile.ts b/code/Solutions/OppTrans/BluetoothOpp/entry/hvigorfile.ts new file mode 100644 index 0000000000..80e4ec5b81 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/hvigorfile.ts @@ -0,0 +1,2 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { hapTasks } from '@ohos/hvigor-ohos-plugin'; diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/oh-package.json5 b/code/Solutions/OppTrans/BluetoothOpp/entry/oh-package.json5 new file mode 100644 index 0000000000..225946cb11 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/oh-package.json5 @@ -0,0 +1,10 @@ +{ + "license": "", + "devDependencies": {}, + "author": "", + "name": "entry", + "description": "Please describe the basic information.", + "main": "", + "version": "1.0.0", + "dependencies": {} +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/package-lock.json b/code/Solutions/OppTrans/BluetoothOpp/entry/package-lock.json new file mode 100644 index 0000000000..15bc7145be --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/package-lock.json @@ -0,0 +1,5 @@ +{ + "name": "entry", + "version": "1.0.0", + "lockfileVersion": 1 +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/package.json b/code/Solutions/OppTrans/BluetoothOpp/entry/package.json new file mode 100644 index 0000000000..c7685ac4e7 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/package.json @@ -0,0 +1,14 @@ +{ + "license": "ISC", + "devDependencies": {}, + "name": "entry", + "ohos": { + "org": "huawei", + "directoryLevel": "module", + "buildTool": "hvigor" + }, + "description": "example description", + "repository": {}, + "version": "1.0.0", + "dependencies": {} +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/common/log.ts b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/common/log.ts new file mode 100644 index 0000000000..64bf48a9fb --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/common/log.ts @@ -0,0 +1,6 @@ +import promptAction from '@ohos.promptAction'; + +export function testLog(logStr: string) { + promptAction.showToast({ message: logStr }) + console.log(logStr) +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/entryability/EntryAbility.ts b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/entryability/EntryAbility.ts new file mode 100644 index 0000000000..b471280e6d --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/entryability/EntryAbility.ts @@ -0,0 +1,42 @@ +import UIAbility from '@ohos.app.ability.UIAbility'; +import hilog from '@ohos.hilog'; +import window from '@ohos.window'; + +export default class EntryAbility extends UIAbility { + onCreate(want, launchParam) { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + globalThis.context = this.context; + } + + onDestroy() { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage) { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err, data) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); + }); + } + + onWindowStageDestroy() { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground() { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground() { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/BleTest/BleTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/BleTest/BleTest.ets new file mode 100644 index 0000000000..7299a5e1c3 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/BleTest/BleTest.ets @@ -0,0 +1,51 @@ +import promptAction from '@ohos.promptAction'; +import bluetoothManager from '@ohos.bluetoothManager'; + +function string2ArrayBuffer(str) { + let array = new Uint8Array(str.length); + for (var i = 0; i < str.length; i++) { + array[i] = str.charCodeAt(i); + } + return array.buffer +} + +@Entry +@Component +struct BleTest { + build() { + Row() { + Column() { + Button('BleScan').fontSize(20).onClick(() => { + let scanFilter: bluetoothManager.ScanFilter = { + "deviceId": "11:22:33:44:55:66", + "name": "OHOS", + "serviceUuid": "00001234-0000-1000-8000-00805F9B34FB", + "serviceUuidMask": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF", + "serviceSolicitationUuid": "00001234-0000-1000-8000-00805F9B34FB", + "serviceSolicitationUuidMask": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF", + "serviceData": string2ArrayBuffer("01234FFFFFF-FFFFF-FFFFF"), + "serviceDataMask": string2ArrayBuffer("01234FFFFFF-FFFFF-FFFFF"), + "manufactureId": 12345, + "manufactureData": string2ArrayBuffer("01234jjjjjjjj-jjjjjj"), + "manufactureDataMask": string2ArrayBuffer("01234jjjjjjjj-jjjjjj"), + } + let scanOption: bluetoothManager.ScanOptions = { + interval: 500, + dutyMode: bluetoothManager.ScanDuty.SCAN_MODE_LOW_POWER, + matchMode: bluetoothManager.MatchMode.MATCH_MODE_AGGRESSIVE + } + let curScanFilters = []; + curScanFilters.push(scanFilter); + try { + bluetoothManager.BLE.startBLEScan(curScanFilters, scanOption); + } catch (err) { + console.log("error " + err.code + ", errorMessage " + err.message) + } + promptAction.showToast({ message: "执行成功 " }) + }).margin(5).width('100%') + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/Index.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/Index.ets new file mode 100644 index 0000000000..97236b46b3 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,38 @@ +import router from '@ohos.router'; +import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; + +@Entry +@Component +struct Index { + + aboutToAppear(){ + let abilityMgr = abilityAccessCtrl.createAtManager(); + abilityMgr.requestPermissionsFromUser(globalThis.context, ["ohos.permission.LOCATION", "ohos.permission.APPROXIMATELY_LOCATION",'ohos.permission.ACCESS_BLUETOOTH'], (error, result) => { + console.log("bluetooth requestPermissionsFromUser, err: "+JSON.stringify(error)+" ; result: "+JSON.stringify(result)) + }) + } + + build() { + Row() { + Column() { +// Button('Spp命令传输测试').fontSize(40).onClick(() => { +// router.push({ url: 'pages/SppTest/SppTest' }) +// }).margin(10) + + Button('Opp文件传输').fontSize(40).onClick(() => { + router.push({ url: 'pages/OppTest/OppTest' }) + }).margin(10) + +// Button('BleTest').fontSize(40).onClick(() => { +// router.push({ url: 'pages/BleTest/BleTest' }) +// }).margin(10) +// +// Button('ProfileTest').fontSize(40).onClick(() => { +// router.push({ url: 'pages/ProfileTest/ProfileTest' }) +// }).margin(10) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppClientTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppClientTest.ets new file mode 100644 index 0000000000..e580396c01 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppClientTest.ets @@ -0,0 +1,113 @@ +import bluetooth from '@ohos.bluetooth'; +import { testLog } from '../../common/log' + +@Entry +@Component +struct Client { + private oppProfile: bluetooth.OppProfile = undefined; + private pairDevices: {id: string, name: string}[] = []; + @State serverMac: string = ""; + private fileName: string = ""; + private fileType: string = "jpg" + + aboutToAppear(){ + try{ + // @ts-ignore + this.oppProfile = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_OPP); + testLog("get opp profile success"); + }catch (error){ + testLog("get opp profile fail, err: "+JSON.stringify(error)); + } + this.getPairDevice(); + } + + getPairDevice(){ + let macs = bluetooth.getPairedDevices(); + console.log("getPairDevice macs: "+JSON.stringify(macs)); + for (let i = 0; i < macs.length; i++) { + let name = bluetooth.getRemoteDeviceName(macs[i]); + console.log("getPairDevice name: "+JSON.stringify(name)); + this.pairDevices.push({ id: macs[i], name: name }); + } + console.log("getPairDevice pairDevices: "+JSON.stringify(this.pairDevices)); + } + + build() { + Row() { + Column({space: 20}) { + + Column(){ + Text("已配对设备列表:(点击选择设备)") + .fontSize(20) + .fontWeight(FontWeight.Bold) + + Scroll(){ + List({space: 5}){ + ForEach(this.pairDevices, (item: {id: string, name: string}) => { + ListItem(){ + Text(item.name) + .fontSize(25) + .width("80%") + .margin({left: '10%'}) + .backgroundColor(this.serverMac === item.id ? "#00FF00" : "#FFFF00") + .border({ + radius: 5 + }) + } + .onClick(() => { + this.serverMac = item.id; + }) + }) + } + } + .height("30%") + .width("80%") + } + + Column(){ + Text("已选择的设备的蓝牙mac地址:").fontSize(17).fontWeight(FontWeight.Bold) + Text(this.serverMac) + .fontSize("25") + .width("70%") + .borderRadius(5) + .backgroundColor(Color.Grey) + } + + Column(){ + Text("请输入需要发送的文件名称,如:test.txt").fontSize(13).fontWeight(FontWeight.Bold) + Text("注:文件必须在/data/bluetooth/log/目录下").fontSize(13).fontWeight(FontWeight.Bold) + TextInput({ placeholder: "文件名称" }) + .fontSize("17vp") + .onChange((str) => { + if(str){ + let strs = str.split("."); + this.fileName = str; + this.fileType = strs[1]; + } + }).width("70%").borderRadius(1) + } + + Button('oppSendFile').fontSize(20).onClick(() => { + + try { + if (this.serverMac && this.fileName) { + let result = this.oppProfile.sendFile(this.serverMac, [{ + filePath:"/data/bluetooth/log/"+this.fileName, + fileSize:0, + fileFd:1, + }]) + testLog("opp发送文件成功! result: "+JSON.stringify(result)); + } else { + testLog("请选择设备并输入文件名"); + } + } catch (error) { + testLog("opp发送文件失败, err: "+JSON.stringify(error)); + } + }).width('60%') + + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppServerTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppServerTest.ets new file mode 100644 index 0000000000..8eea5b9652 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppServerTest.ets @@ -0,0 +1,123 @@ +import bluetooth from '@ohos.bluetooth'; +import { testLog } from '../../common/log' + +const TAG = "opp_server" + +@Entry +@Component +struct Client { + private oppProfile: bluetooth.OppProfile = undefined; + @State showProgress: boolean = false; + @State curProgress: number = 0; + private deviceName: string = ""; + private fileName: string = ""; + private receiveDialogController: CustomDialogController = new CustomDialogController({ + builder: ReceiveCustomDialog({ + deviceName: this.deviceName, + fileName: this.fileName, + confirm: () => { + try{ + this.oppProfile.setIncomingFileConfirmation(true,1); + this.receiveDialogController.close(); + this.onStateChange(); + console.log(TAG, "receive success"); + }catch (error){ + console.log(TAG, "receive fail, err: "+JSON.stringify(error)); + } + }, + cancel: () => { + try{ + this.oppProfile.setIncomingFileConfirmation(false,1); + this.receiveDialogController.close(); + console.log(TAG, "reject receive success"); + }catch (error){ + console.log(TAG, "reject receive fail, err: "+JSON.stringify(error)); + } + } + }) + }) + + aboutToAppear(){ + try{ + // @ts-ignore + this.oppProfile = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_OPP) + testLog("get opp profile success"); + }catch (error){ + testLog("get opp profile fail, err: "+JSON.stringify(error)); + } + } + + onStateChange(){ + try{ + this.oppProfile.on("transferStateChange", (stateInformation) => { + console.log(TAG, "transferStateChange enter"); + this.showProgress = true; + this.curProgress = (stateInformation.currentBytes * 100) / stateInformation.totalBytes; + if(this.curProgress === 100){ + this.showProgress = false; + testLog("接收文件成功,文件存放路径:"+JSON.stringify(stateInformation.filePath)); + } + }) + }catch (error){ + console.log(TAG, "on transferStateChange fail, err: "+JSON.stringify(error)); + } + } + + build() { + Row() { + Column({space: 100}) { + + Button('opp开启接收文件').fontSize(20).onClick(() => { + try { + this.oppProfile.on("receiveIncomingFile", (information) => { + this.deviceName = information.deviceName; + this.fileName = information.fileName; + this.receiveDialogController.open(); + }) + } catch (error) { + testLog("opp开启接收文件失败,err: "+JSON.stringify(error)); + } + }).width('60%') + + if(this.showProgress){ + Row({space: 5}){ + Progress({value: this.curProgress, total: 100, type: ProgressType.Linear}) + .style({strokeWidth: 10}) + + Text(this.curProgress+"%") + .fontSize(30) + } + } + + } + .width('100%') + } + .height('100%') + } +} + +@CustomDialog +struct ReceiveCustomDialog { + controller: CustomDialogController + deviceName: string + fileName: string + cancel: () => void + confirm: () => void + + build() { + Column() { + Text("是否接收来自 "+this.deviceName+" 的文件").fontSize(20).margin({ top: 10, bottom: 10 }) + Text(this.fileName).fontSize(16).margin({ bottom: 10 }) + Flex({ justifyContent: FlexAlign.SpaceAround }) { + Button('拒接') + .onClick(() => { + this.cancel() + }) + Button('接收') + .onClick(() => { + this.confirm() + }) + }.margin({ bottom: 10 }) + } + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppTest.ets new file mode 100644 index 0000000000..ee3428f1cf --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/OppTest/OppTest.ets @@ -0,0 +1,21 @@ +import router from '@ohos.router'; +@Entry +@Component +struct SppTest { + + build() { + Row() { + Column() { + Button('Opp接收服务端').fontSize(30).onClick(() => { + router.push({url: 'pages/OppTest/OppServerTest'}) + }).margin(20) + + Button('Opp发送服务端').fontSize(30).onClick(() => { + router.push({ url: 'pages/OppTest/OppClientTest' }) + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/A2dpTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/A2dpTest.ets new file mode 100644 index 0000000000..3ec923791e --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/A2dpTest.ets @@ -0,0 +1,68 @@ +import { testLog } from '../../common/log'; +import promptAction from '@ohos.promptAction'; +import bluetoothManager from '@ohos.bluetoothManager'; + +@Entry +@Component +struct A2dpTest { + private address: string = "08:F4:58:65:91:09" + private instance = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_A2DP_SOURCE) as bluetoothManager.A2dpSourceProfile + + build() { + Row() { + Column() { + Button('on').fontSize(20).onClick(() => { + this.instance.on('connectionStateChange', (param) => { + testLog("connectionStateChange deviceId: " + param.deviceId + " ,state: " + param.state) + }) + }).margin(5).width('100%') + + Button('off').fontSize(20).onClick(() => { + this.instance.off('connectionStateChange', (param) => { + testLog("connectionStateChange deviceId: " + param.deviceId + " ,state: " + param.state) + }) + }).margin(5).width('100%') + + + Button('Connect').fontSize(20).onClick(() => { + try { + this.instance.connect(this.address); + testLog("Connect success") + } catch (err) { + testLog("Connect crash ") + } + }).margin(5).width('100%') + + Button('DisConnect').fontSize(20).onClick(() => { + try { + this.instance.disconnect(this.address); + testLog("DisConnect success") + } catch (err) { + testLog("DisConnect crash ") + } + }).margin(5).width('100%') + + Button('GetDeviceState').fontSize(20).onClick(() => { + try { + let state = this.instance.getDeviceState(this.address); + testLog("GetDeviceState: " + state) + } catch (err) { + testLog("GetDeviceState crash ") + } + }).margin(5).width('100%') + + Button('GetConnectDevices').fontSize(20).onClick(() => { + try { + let devices = this.instance.getConnectionDevices(); + testLog("GetConnectDevices: " + devices) + } catch (err) { + testLog("GetConnectDevices crash ") + } + }).margin(5).width('100%') + + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/HfpTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/HfpTest.ets new file mode 100644 index 0000000000..ea7bf1481b --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/HfpTest.ets @@ -0,0 +1,17 @@ +@Entry +@Component +struct HfpTest { + @State message: string = 'Hello World' + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/ProfileTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/ProfileTest.ets new file mode 100644 index 0000000000..9923623a2a --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/ProfileTest/ProfileTest.ets @@ -0,0 +1,22 @@ +import router from '@ohos.router'; +@Entry +@Component +struct ProfileTest { + @State message: string = 'Hello World' + + build() { + Row() { + Column() { + Button('A2dpTest').fontSize(50).onClick(() => { + router.push({url: 'pages/ProfileTest/A2dpTest'}) + }).margin(5) + + Button('HfpTest').fontSize(50).onClick(() => { + router.push({ url: 'pages/ProfileTest/HfpTest' }) + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppClientTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppClientTest.ets new file mode 100644 index 0000000000..3d28dee39e --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppClientTest.ets @@ -0,0 +1,79 @@ +import bluetoothManager from '@ohos.bluetoothManager'; +import { testLog } from '../../common/log' + +@Entry +@Component +struct Client { + private clientNumber: number = -1; + private serverMac: string = "08:FB:EA:19:58:31"; + private uuid: string = "22001101-0000-1000-8000-00805f9b34fb"; + private message: string = "test message"; + + build() { + Row() { + Column() { + Text("请输入需要连接的蓝牙mac地址,默认为:08:FB:EA:19:58:31").fontSize(20).maxLines(3).backgroundColor(Color.Gray) + TextInput({ placeholder: "mac地址" }) + .fontSize("17vp") + .onChange((str) => { + if(str){ + this.serverMac = str; + } + }).margin(10).width("70%").borderRadius(1) + + Text("请输入需要发送的命令,默认为:test message").fontSize(20).maxLines(3).backgroundColor(Color.Gray) + TextInput({ placeholder: "命令" }) + .fontSize("17vp") + .onChange((str) => { + if(str){ + this.message = str; + } + }).width("70%").borderRadius(1) + + Button('spp连接接收服务端').fontSize(20).onClick(() => { + try { + bluetoothManager.sppConnect(this.serverMac, { + uuid: this.uuid, + secure: false, + type: 0 + }, (code, clientId) => { + if (code.code) { + testLog("spp连接接收服务端失败, err: " + code.code) + } else { + this.clientNumber = clientId; + testLog("spp连接接收服务端成功!"); + } + }) + } catch (err) { + testLog("sppConnect crash") + } + + }).margin(10).width('100%') + + Button('spp发送命令').fontSize(20).onClick(() => { + let array = new Uint8Array(this.message.length); + for (var i = 0; i < this.message.length; i++) { + array[i] = this.message.charCodeAt(i); + } + try { + bluetoothManager.sppWrite(this.clientNumber, array.buffer); + testLog("spp发送命令成功!"); + } catch (err) { + testLog("spp发送命令失败,err: "+JSON.stringify(err)) + } + }).margin(10).width('100%') + + Button('spp关闭服务').fontSize(20).onClick(() => { + try{ + bluetoothManager.sppCloseClientSocket(this.clientNumber); + testLog("spp关闭服务成功!"); + }catch(error){ + testLog("spp关闭服务失败,err: "+JSON.stringify(error)); + } + }).margin(10).width('100%') + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppServerTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppServerTest.ets new file mode 100644 index 0000000000..601caed075 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppServerTest.ets @@ -0,0 +1,96 @@ +import bluetoothManager from '@ohos.bluetoothManager'; +import { testLog } from '../../common/log' + +@Entry +@Component +struct Server { + private uuid: string = "22001101-0000-1000-8000-00805f9b34fb"; + private serverNumber: number = -1; + private clientSocketId: number = -1; + @State receiveMessage: string = ""; + + build() { + Row() { + Column() { + Button('spp创建接收服务').fontSize(20).onClick(() => { + try { + bluetoothManager.setBluetoothScanMode(bluetoothManager.ScanMode.SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, 0); + bluetoothManager.sppListen('server', { + uuid: this.uuid, + secure: false, + type: 0 + }, (code, serverSocketId) => { + if (code.code) { + testLog("spp创建接收服务失败,err: " + JSON.stringify(code)); + } else { + this.serverNumber = serverSocketId; + testLog("spp创建接收服务成功!") + } + }) + } catch (err) { + testLog("spp创建接收服务crash,err: "+JSON.stringify(err)); + } + }).margin(5).width('100%') + + Button('spp接收服务').fontSize(20).onClick(() => { + testLog("spp接收服务执行"); + try { + bluetoothManager.sppAccept(this.serverNumber, (code, clientSocketId) => { + if (code.code) { + testLog("spp接收服务失败,err: " + JSON.stringify(code)); + } else { + testLog("spp接收服务成功!") + this.clientSocketId = clientSocketId; + } + }) + } catch (err) { + testLog("spp接收服务crash,err: "+JSON.stringify(err)) + } + }).margin(5).width('100%') + + Button('spp接收命令').fontSize(20).onClick(() => { + try { + bluetoothManager.on('sppRead', this.clientSocketId, (dataBuffer: ArrayBuffer) => { + if (dataBuffer != null) { + let data = new Uint8Array(dataBuffer); + this.receiveMessage = JSON.stringify(String.fromCharCode(...data)); + testLog("spp接收命令成功!") + } else { + testLog("spp接收命令为空!"); + } + + }) + } catch (err) { + testLog("spp接收命令crash,err: "+JSON.stringify(err)); + } + + }).margin(5).width('100%') + + Button('spp关闭命令接收').fontSize(20).onClick(() => { + try{ + bluetoothManager.off('sppRead', this.clientSocketId, null); + testLog("spp关闭命令接收成功!"); + }catch(error){ + testLog("spp关闭命令接收失败,err: "+JSON.stringify(error)); + } + }).margin(5).width('100%') + + Button('spp关闭服务').fontSize(20).onClick(() => { + try{ + bluetoothManager.sppCloseServerSocket(this.serverNumber); + bluetoothManager.sppCloseClientSocket(this.clientSocketId); + testLog("关闭服务成功!") + }catch (error){ + testLog("关闭服务失败,err: "+JSON.stringify(error)); + } + }).margin(5).width('100%') + + Text(this.receiveMessage) + .fontSize(30) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppTest.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppTest.ets new file mode 100644 index 0000000000..0870aed686 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/ets/pages/SppTest/SppTest.ets @@ -0,0 +1,22 @@ +import router from '@ohos.router'; +@Entry +@Component +struct SppTest { + @State message: string = 'Hello World' + + build() { + Row() { + Column() { + Button('Spp命令接收端').fontSize(30).onClick(() => { + router.push({url: 'pages/SppTest/SppServerTest'}) + }).margin(20) + + Button('Spp命令发送端').fontSize(30).onClick(() => { + router.push({ url: 'pages/SppTest/SppClientTest' }) + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/module.json5 b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/module.json5 new file mode 100644 index 0000000000..841d6f89d9 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/module.json5 @@ -0,0 +1,59 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ts", + "description": "$string:EntryAbility_desc", + "icon": "$media:app_icon", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + "requestPermissions": [ + { + "name": "ohos.permission.USE_BLUETOOTH" + }, + { + "name": "ohos.permission.DISCOVER_BLUETOOTH" + }, + { + "name": "ohos.permission.LOCATION", + "reason": "$string:reason" + }, + { + "name": "ohos.permission.APPROXIMATELY_LOCATION", + "reason": "$string:reason" + }, + { + "name": "ohos.permission.MANAGE_BLUETOOTH" + }, + { + "name": "ohos.permission.ACCESS_BLUETOOTH", + "reason": "$string:reason" + } + ] + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/color.json b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/color.json new file mode 100644 index 0000000000..3c712962da --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/string.json b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000000..4b2469bb0e --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/element/string.json @@ -0,0 +1,20 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "蓝牙文件传输" + }, + { + "name": "reason", + "value": "user_grant" + } + ] +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/app_icon.png b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..380e486977b2d0259fcb3aed0f54a5e0a98ed528 GIT binary patch literal 6002 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 literal 0 HcmV?d00001 diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/icon.png b/code/Solutions/OppTrans/BluetoothOpp/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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
>u+@Z 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%0DS+p1g$450)(1@fA_ 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%0AWjq5qLtohrC4`DAX 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 { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', + JSON.stringify(data) ?? ''); + }); + } + + onWindowStageDestroy() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onWindowStageDestroy'); + } + + onForeground() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onForeground'); + } + + onBackground() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onBackground'); + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/pages/Index.ets b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/pages/Index.ets new file mode 100644 index 0000000000..166366593a --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testability/pages/Index.ets @@ -0,0 +1,34 @@ +import hilog from '@ohos.hilog'; + +@Entry +@Component +struct Index { + aboutToAppear() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility index aboutToAppear'); + } + @State message: string = 'Hello World' + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + Button() { + Text('next page') + .fontSize(20) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .backgroundColor('#0D9FFB') + .width('35%') + .height('5%') + .onClick(()=>{ + }) + } + .width('100%') + } + .height('100%') + } + } \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts new file mode 100644 index 0000000000..92a16d84e8 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts @@ -0,0 +1,49 @@ +import hilog from '@ohos.hilog'; +import TestRunner from '@ohos.application.testRunner'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; + +var abilityDelegator = undefined +var abilityDelegatorArguments = undefined + +async function onAbilityCreateCallback() { + hilog.info(0x0000, 'testTag', '%{public}s', 'onAbilityCreateCallback'); +} + +async function addAbilityMonitorCallback(err: any) { + hilog.info(0x0000, 'testTag', 'addAbilityMonitorCallback : %{public}s', JSON.stringify(err) ?? ''); +} + +export default class OpenHarmonyTestRunner implements TestRunner { + constructor() { + } + + onPrepare() { + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner OnPrepare '); + } + + async onRun() { + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun run'); + abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + var testAbilityName = abilityDelegatorArguments.bundleName + '.TestAbility' + let lMonitor = { + abilityName: testAbilityName, + onAbilityCreate: onAbilityCreateCallback, + }; + abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback) + var cmd = 'aa start -d 0 -a TestAbility' + ' -b ' + abilityDelegatorArguments.bundleName + var debug = abilityDelegatorArguments.parameters['-D'] + if (debug == 'true') + { + cmd += ' -D' + } + hilog.info(0x0000, 'testTag', 'cmd : %{public}s', cmd); + abilityDelegator.executeShellCommand(cmd, + (err: any, d: any) => { + hilog.info(0x0000, 'testTag', 'executeShellCommand : err : %{public}s', JSON.stringify(err) ?? ''); + hilog.info(0x0000, 'testTag', 'executeShellCommand : data : %{public}s', d.stdResult ?? ''); + hilog.info(0x0000, 'testTag', 'executeShellCommand : data : %{public}s', d.exitCode ?? ''); + }) + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun end'); + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/module.json5 b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/module.json5 new file mode 100644 index 0000000000..c386019030 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/module.json5 @@ -0,0 +1,36 @@ +{ + "module": { + "name": "entry_test", + "type": "feature", + "description": "$string:module_test_desc", + "mainElement": "TestAbility", + "deviceTypes": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:test_pages", + "abilities": [ + { + "name": "TestAbility", + "srcEntry": "./ets/testability/TestAbility.ets", + "description": "$string:TestAbility_desc", + "icon": "$media:icon", + "label": "$string:TestAbility_label", + "exported": true, + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "skills": [ + { + "actions": [ + "action.system.home" + ], + "entities": [ + "entity.system.home" + ] + } + ] + } + ] + } +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/color.json b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/color.json new file mode 100644 index 0000000000..3c712962da --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/string.json b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/string.json new file mode 100644 index 0000000000..65d8fa5a7c --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_test_desc", + "value": "test ability description" + }, + { + "name": "TestAbility_desc", + "value": "the test ability" + }, + { + "name": "TestAbility_label", + "value": "test label" + } + ] +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/media/icon.png b/code/Solutions/OppTrans/BluetoothOpp/entry/src/ohosTest/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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.default.createHash(u);u.hash=(D,e)=>(0,u.createHash)(e).update(D).digest("hex");u.hashFile=(D,e)=>{if(i.default.existsSync(D))return(0,u.hash)(i.default.readFileSync(D,"utf-8"),e)}}(v);var g={},m={},R={};Object.defineProperty(R,"__esModule",{value:!0}),R.Unicode=void 0;class y{}R.Unicode=y,y.SPACE_SEPARATOR=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,y.ID_START=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,y.ID_CONTINUE=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,Object.defineProperty(m,"__esModule",{value:!0}),m.JudgeUtil=void 0;const I=R;m.JudgeUtil=class{static isIgnoreChar(u){return"string"==typeof u&&("\t"===u||"\v"===u||"\f"===u||" "===u||" "===u||"\ufeff"===u||"\n"===u||"\r"===u||"\u2028"===u||"\u2029"===u)}static isSpaceSeparator(u){return"string"==typeof u&&I.Unicode.SPACE_SEPARATOR.test(u)}static isIdStartChar(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||"$"===u||"_"===u||I.Unicode.ID_START.test(u))}static isIdContinueChar(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||u>="0"&&u<="9"||"$"===u||"_"===u||"‌"===u||"‍"===u||I.Unicode.ID_CONTINUE.test(u))}static isDigitWithoutZero(u){return/[1-9]/.test(u)}static isDigit(u){return"string"==typeof u&&/[0-9]/.test(u)}static isHexDigit(u){return"string"==typeof u&&/[0-9A-Fa-f]/.test(u)}};var N=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(g,"__esModule",{value:!0}),g.parseJsonText=g.parseJsonFile=void 0;const b=N(e),S=N(D),w=N(u),H=m;var x;!function(u){u[u.Char=0]="Char",u[u.EOF=1]="EOF",u[u.Identifier=2]="Identifier"}(x||(x={}));let M,T,V,G,j,J,W="start",U=[],L=0,$=1,k=0,K=!1,z="default",q="'",Z=1;function X(u,D=!1){T=String(u),W="start",U=[],L=0,$=1,k=0,G=void 0,K=D;do{M=Q(),nu[W]()}while("eof"!==M.type);return G}function Q(){for(z="default",j="",q="'",Z=1;;){J=Y();const u=Du[z]();if(u)return u}}function Y(){if(T[L])return String.fromCodePoint(T.codePointAt(L))}function uu(){const u=Y();return"\n"===u?($++,k=0):u?k+=u.length:k++,u&&(L+=u.length),u}g.parseJsonFile=function(u,D=!1,e="utf-8"){const t=b.default.readFileSync(w.default.resolve(u),{encoding:e});try{return X(t,D)}catch(D){if(D instanceof SyntaxError){const e=D.message.split("at");if(2===e.length)throw new Error(`${e[0].trim()}${S.default.EOL}\t at ${u}:${e[1].trim()}`)}throw new Error(`${u} is not in valid JSON/JSON5 format.`)}},g.parseJsonText=X;const Du={default(){switch(J){case"/":return uu(),void(z="comment");case void 0:return uu(),eu("eof")}if(!H.JudgeUtil.isIgnoreChar(J)&&!H.JudgeUtil.isSpaceSeparator(J))return Du[W]();uu()},start(){z="value"},beforePropertyName(){switch(J){case"$":case"_":return j=uu(),void(z="identifierName");case"\\":return uu(),void(z="identifierNameStartEscape");case"}":return eu("punctuator",uu());case'"':case"'":return q=J,uu(),void(z="string")}if(H.JudgeUtil.isIdStartChar(J))return j+=uu(),void(z="identifierName");throw Eu(x.Char,uu())},afterPropertyName(){if(":"===J)return eu("punctuator",uu());throw Eu(x.Char,uu())},beforePropertyValue(){z="value"},afterPropertyValue(){switch(J){case",":case"}":return eu("punctuator",uu())}throw Eu(x.Char,uu())},beforeArrayValue(){if("]"===J)return eu("punctuator",uu());z="value"},afterArrayValue(){switch(J){case",":case"]":return eu("punctuator",uu())}throw Eu(x.Char,uu())},end(){throw Eu(x.Char,uu())},comment(){switch(J){case"*":return uu(),void(z="multiLineComment");case"/":return uu(),void(z="singleLineComment")}throw Eu(x.Char,uu())},multiLineComment(){switch(J){case"*":return uu(),void(z="multiLineCommentAsterisk");case void 0:throw Eu(x.Char,uu())}uu()},multiLineCommentAsterisk(){switch(J){case"*":return void uu();case"/":return uu(),void(z="default");case void 0:throw Eu(x.Char,uu())}uu(),z="multiLineComment"},singleLineComment(){switch(J){case"\n":case"\r":case"\u2028":case"\u2029":return uu(),void(z="default");case void 0:return uu(),eu("eof")}uu()},value(){switch(J){case"{":case"[":return eu("punctuator",uu());case"n":return uu(),tu("ull"),eu("null",null);case"t":return uu(),tu("rue"),eu("boolean",!0);case"f":return uu(),tu("alse"),eu("boolean",!1);case"-":case"+":return"-"===uu()&&(Z=-1),void(z="numerical");case".":case"0":case"I":case"N":return void(z="numerical");case'"':case"'":return q=J,uu(),j="",void(z="string")}if(void 0===J||!H.JudgeUtil.isDigitWithoutZero(J))throw Eu(x.Char,uu());z="numerical"},numerical(){switch(J){case".":return j=uu(),void(z="decimalPointLeading");case"0":return j=uu(),void(z="zero");case"I":return uu(),tu("nfinity"),eu("numeric",Z*(1/0));case"N":return uu(),tu("aN"),eu("numeric",NaN)}if(void 0!==J&&H.JudgeUtil.isDigitWithoutZero(J))return j=uu(),void(z="decimalInteger");throw Eu(x.Char,uu())},zero(){switch(J){case".":case"e":case"E":return void(z="decimal");case"x":case"X":return j+=uu(),void(z="hexadecimal")}return eu("numeric",0)},decimalInteger(){switch(J){case".":case"e":case"E":return void(z="decimal")}if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},decimal(){switch(J){case".":j+=uu(),z="decimalFraction";break;case"e":case"E":j+=uu(),z="decimalExponent"}},decimalPointLeading(){if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalFraction");throw Eu(x.Char,uu())},decimalFraction(){switch(J){case"e":case"E":return j+=uu(),void(z="decimalExponent")}if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},decimalExponent(){switch(J){case"+":case"-":return j+=uu(),void(z="decimalExponentSign")}if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalExponentInteger");throw Eu(x.Char,uu())},decimalExponentSign(){if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalExponentInteger");throw Eu(x.Char,uu())},decimalExponentInteger(){if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},hexadecimal(){if(H.JudgeUtil.isHexDigit(J))return j+=uu(),void(z="hexadecimalInteger");throw Eu(x.Char,uu())},hexadecimalInteger(){if(!H.JudgeUtil.isHexDigit(J))return eu("numeric",Z*Number(j));j+=uu()},identifierNameStartEscape(){if("u"!==J)throw Eu(x.Char,uu());uu();const u=ru();switch(u){case"$":case"_":break;default:if(!H.JudgeUtil.isIdStartChar(u))throw Eu(x.Identifier)}j+=u,z="identifierName"},identifierName(){switch(J){case"$":case"_":case"‌":case"‍":return void(j+=uu());case"\\":return uu(),void(z="identifierNameEscape")}if(!H.JudgeUtil.isIdContinueChar(J))return eu("identifier",j);j+=uu()},identifierNameEscape(){if("u"!==J)throw Eu(x.Char,uu());uu();const u=ru();switch(u){case"$":case"_":case"‌":case"‍":break;default:if(!H.JudgeUtil.isIdContinueChar(u))throw Eu(x.Identifier)}j+=u,z="identifierName"},string(){switch(J){case"\\":return uu(),void(j+=function(){const u=Y(),D=function(){switch(Y()){case"b":return uu(),"\b";case"f":return uu(),"\f";case"n":return uu(),"\n";case"r":return uu(),"\r";case"t":return uu(),"\t";case"v":return uu(),"\v"}return}();if(D)return D;switch(u){case"0":if(uu(),H.JudgeUtil.isDigit(Y()))throw Eu(x.Char,uu());return"\0";case"x":return uu(),function(){let u="",D=Y();if(!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());if(u+=uu(),D=Y(),!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());return u+=uu(),String.fromCodePoint(parseInt(u,16))}();case"u":return uu(),ru();case"\n":case"\u2028":case"\u2029":return uu(),"";case"\r":return uu(),"\n"===Y()&&uu(),""}if(void 0===u||H.JudgeUtil.isDigitWithoutZero(u))throw Eu(x.Char,uu());return uu()}());case'"':case"'":if(J===q){const u=eu("string",j);return uu(),u}return void(j+=uu());case"\n":case"\r":case void 0:throw Eu(x.Char,uu());case"\u2028":case"\u2029":!function(u){console.warn(`JSON5: '${Fu(u)}' in strings is not valid ECMAScript; consider escaping.`)}(J)}j+=uu()}};function eu(u,D){return{type:u,value:D,line:$,column:k}}function tu(u){for(const D of u){if(Y()!==D)throw Eu(x.Char,uu());uu()}}function ru(){let u="",D=4;for(;D-- >0;){const D=Y();if(!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());u+=uu()}return String.fromCodePoint(parseInt(u,16))}const nu={start(){if("eof"===M.type)throw Eu(x.EOF);iu()},beforePropertyName(){switch(M.type){case"identifier":case"string":return V=M.value,void(W="afterPropertyName");case"punctuator":return void Cu();case"eof":throw Eu(x.EOF)}},afterPropertyName(){if("eof"===M.type)throw Eu(x.EOF);W="beforePropertyValue"},beforePropertyValue(){if("eof"===M.type)throw Eu(x.EOF);iu()},afterPropertyValue(){if("eof"===M.type)throw Eu(x.EOF);switch(M.value){case",":return void(W="beforePropertyName");case"}":Cu()}},beforeArrayValue(){if("eof"===M.type)throw Eu(x.EOF);"punctuator"!==M.type||"]"!==M.value?iu():Cu()},afterArrayValue(){if("eof"===M.type)throw Eu(x.EOF);switch(M.value){case",":return void(W="beforeArrayValue");case"]":Cu()}},end(){}};function iu(){const u=function(){let u;switch(M.type){case"punctuator":switch(M.value){case"{":u={};break;case"[":u=[]}break;case"null":case"boolean":case"numeric":case"string":u=M.value}return u}();if(K&&"object"==typeof u&&(u._line=$,u._column=k),void 0===G)G=u;else{const D=U[U.length-1];Array.isArray(D)?K&&"object"!=typeof u?D.push({value:u,_line:$,_column:k}):D.push(u):D[V]=K&&"object"!=typeof u?{value:u,_line:$,_column:k}:u}!function(u){if(u&&"object"==typeof u)U.push(u),W=Array.isArray(u)?"beforeArrayValue":"beforePropertyName";else{const u=U[U.length-1];W=u?Array.isArray(u)?"afterArrayValue":"afterPropertyValue":"end"}}(u)}function Cu(){U.pop();const u=U[U.length-1];W=u?Array.isArray(u)?"afterArrayValue":"afterPropertyValue":"end"}function Fu(u){const D={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(D[u])return D[u];if(u<" "){const D=u.charCodeAt(0).toString(16);return`\\x${`00${D}`.substring(D.length)}`}return u}function Eu(u,D){let e="";switch(u){case x.Char:e=void 0===D?`JSON5: invalid end of input at ${$}:${k}`:`JSON5: invalid character '${Fu(D)}' at ${$}:${k}`;break;case x.EOF:e=`JSON5: invalid end of input at ${$}:${k}`;break;case x.Identifier:k-=5,e=`JSON5: invalid identifier character at ${$}:${k}`}const t=new Au(e);return t.lineNumber=$,t.columnNumber=k,t}class Au extends SyntaxError{}var ou={},au=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),cu=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),su=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&au(D,u,e);return cu(D,u),D},lu=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(ou,"__esModule",{value:!0}),ou.isFileExists=ou.offlinePluginConversion=ou.executeCommand=ou.getNpmPath=ou.hasNpmPackInPaths=void 0;const Bu=r,du=lu(e),fu=su(u),_u=i,pu=l;ou.hasNpmPackInPaths=function(u,D){try{return require.resolve(u,{paths:[...D]}),!0}catch(u){return!1}},ou.getNpmPath=function(){const u=process.execPath;return fu.join(fu.dirname(u),_u.NPM_TOOL)},ou.executeCommand=function(u,D,e){0!==(0,Bu.spawnSync)(u,D,e).status&&(0,pu.logErrorAndExit)(`Error: ${u} ${D} execute failed.See above for details.`)},ou.offlinePluginConversion=function(u,D){return D.startsWith("file:")||D.endsWith(".tgz")?fu.resolve(u,_u.HVIGOR,D.replace("file:","")):D},ou.isFileExists=function(u){return du.default.existsSync(u)&&du.default.statSync(u).isFile()};var Ou=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),hu=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),Pu=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&Ou(D,u,e);return hu(D,u),D},vu=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(P,"__esModule",{value:!0});var gu=P.initProjectWorkSpace=void 0;const mu=Pu(e),Ru=vu(D),yu=Pu(u),Iu=v,Nu=i,bu=g,Su=l,wu=ou;let Hu,xu,Mu;function Tu(u,D,e){return void 0!==e.dependencies&&(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,D.dependencies[u])===yu.normalize(e.dependencies[u])}function Vu(){const u=yu.join(Mu,Nu.WORK_SPACE);if((0,Su.logInfoPrintConsole)("Hvigor cleaning..."),!mu.existsSync(u))return;const D=mu.readdirSync(u);if(!D||0===D.length)return;const e=yu.resolve(Mu,"node_modules","@ohos","hvigor","bin","hvigor.js");mu.existsSync(e)&&(0,wu.executeCommand)(process.argv[0],[e,"--stop-daemon"],{});try{D.forEach((D=>{mu.rmSync(yu.resolve(u,D),{recursive:!0})}))}catch(D){(0,Su.logErrorAndExit)(`The hvigor build tool cannot be installed. Please manually clear the workspace directory and synchronize the project again.\n\n Workspace Path: ${u}.`)}}gu=P.initProjectWorkSpace=function(){if(Hu=function(){const u=yu.resolve(Nu.HVIGOR_PROJECT_WRAPPER_HOME,Nu.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME);mu.existsSync(u)||(0,Su.logErrorAndExit)(`Error: Hvigor config file ${u} does not exist.`);return(0,bu.parseJsonFile)(u)}(),Mu=function(u){let D;D=function(u){let D=u.hvigorVersion;if(D.startsWith("file:")||D.endsWith(".tgz"))return!1;const e=u.dependencies,t=Object.getOwnPropertyNames(e);for(const u of t){const D=e[u];if(D.startsWith("file:")||D.endsWith(".tgz"))return!1}if(1===t.length&&"@ohos/hvigor-ohos-plugin"===t[0])return D>"2.5.0";return!1}(u)?function(u){let D=`${Nu.HVIGOR_ENGINE_PACKAGE_NAME}@${u.hvigorVersion}`;const e=u.dependencies;if(e){Object.getOwnPropertyNames(e).sort().forEach((u=>{D+=`,${u}@${e[u]}`}))}return(0,Iu.hash)(D)}(u):(0,Iu.hash)(process.cwd());return yu.resolve(Ru.default.homedir(),".hvigor","project_caches",D)}(Hu),xu=function(){const u=yu.resolve(Mu,Nu.WORK_SPACE,Nu.DEFAULT_PACKAGE_JSON);return mu.existsSync(u)?(0,bu.parseJsonFile)(u):{dependencies:{}}}(),!(0,wu.hasNpmPackInPaths)(Nu.HVIGOR_ENGINE_PACKAGE_NAME,[yu.join(Mu,Nu.WORK_SPACE)])||(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.hvigorVersion)!==xu.dependencies[Nu.HVIGOR_ENGINE_PACKAGE_NAME]||!function(){function u(u){const D=null==u?void 0:u.dependencies;return void 0===D?0:Object.getOwnPropertyNames(D).length}const D=u(Hu),e=u(xu);if(D+1!==e)return!1;for(const u in null==Hu?void 0:Hu.dependencies)if(!(0,wu.hasNpmPackInPaths)(u,[yu.join(Mu,Nu.WORK_SPACE)])||!Tu(u,Hu,xu))return!1;return!0}()){Vu();try{!function(){(0,Su.logInfoPrintConsole)("Hvigor installing...");for(const u in Hu.dependencies)Hu.dependencies[u]&&(Hu.dependencies[u]=(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.dependencies[u]));const u={dependencies:{...Hu.dependencies}};u.dependencies[Nu.HVIGOR_ENGINE_PACKAGE_NAME]=(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.hvigorVersion);const D=yu.join(Mu,Nu.WORK_SPACE);try{mu.mkdirSync(D,{recursive:!0});const e=yu.resolve(D,Nu.DEFAULT_PACKAGE_JSON);mu.writeFileSync(e,JSON.stringify(u))}catch(u){(0,Su.logErrorAndExit)(u)}(function(){const u=["config","set","store-dir",Nu.HVIGOR_PNPM_STORE_PATH],D={cwd:yu.join(Mu,Nu.WORK_SPACE),stdio:["inherit","inherit","inherit"]};(0,wu.executeCommand)(Nu.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,u,D)})(),function(){const u=["install"],D={cwd:yu.join(Mu,Nu.WORK_SPACE),stdio:["inherit","inherit","inherit"]};(0,wu.executeCommand)(Nu.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,u,D)}(),(0,Su.logInfoPrintConsole)("Hvigor install success.")}()}catch(u){Vu()}}return Mu};var Gu={};!function(t){var C=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),F=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),E=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&C(D,u,e);return F(D,u),D},A=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(t,"__esModule",{value:!0}),t.executeInstallPnpm=t.isPnpmInstalled=t.environmentHandler=t.checkNpmConifg=t.PNPM_VERSION=void 0;const o=r,a=E(e),c=A(D),s=E(u),B=i,d=l,f=ou;t.PNPM_VERSION="7.30.0",t.checkNpmConifg=function(){const u=s.resolve(B.HVIGOR_PROJECT_ROOT_DIR,".npmrc"),D=s.resolve(c.default.homedir(),".npmrc");if((0,f.isFileExists)(u)||(0,f.isFileExists)(D))return;const e=(0,f.getNpmPath)(),t=(0,o.spawnSync)(e,["config","get","prefix"],{cwd:B.HVIGOR_PROJECT_ROOT_DIR});if(0!==t.status||!t.stdout)return void(0,d.logErrorAndExit)("Error: The hvigor depends on the npmrc file. Configure the npmrc file first.");const r=s.resolve(`${t.stdout}`.replace(/[\r\n]/gi,""),".npmrc");(0,f.isFileExists)(r)||(0,d.logErrorAndExit)("Error: The hvigor depends on the npmrc file. Configure the npmrc file first.")},t.environmentHandler=function(){process.env["npm_config_update-notifier"]="false"},t.isPnpmInstalled=function(){return!!a.existsSync(B.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH)&&(0,f.hasNpmPackInPaths)("pnpm",[B.HVIGOR_WRAPPER_TOOLS_HOME])},t.executeInstallPnpm=function(){(0,d.logInfoPrintConsole)(`Installing pnpm@${t.PNPM_VERSION}...`);const u=(0,f.getNpmPath)();!function(){const u=s.resolve(B.HVIGOR_WRAPPER_TOOLS_HOME,B.DEFAULT_PACKAGE_JSON);try{a.existsSync(B.HVIGOR_WRAPPER_TOOLS_HOME)||a.mkdirSync(B.HVIGOR_WRAPPER_TOOLS_HOME,{recursive:!0});const D={dependencies:{}};D.dependencies[B.PNPM]=t.PNPM_VERSION,a.writeFileSync(u,JSON.stringify(D))}catch(D){(0,d.logErrorAndExit)(`Error: EPERM: operation not permitted,create ${u} failed.`)}}(),(0,f.executeCommand)(u,["install","pnpm"],{cwd:B.HVIGOR_WRAPPER_TOOLS_HOME,stdio:["inherit","inherit","inherit"],env:process.env}),(0,d.logInfoPrintConsole)("Pnpm install success.")}}(Gu),function(){Gu.checkNpmConifg(),Gu.environmentHandler(),Gu.isPnpmInstalled()||Gu.executeInstallPnpm();const D=gu();_(u.join(D,i.WORK_SPACE))}(); \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/hvigorfile.ts b/code/Solutions/OppTrans/BluetoothOpp/hvigorfile.ts new file mode 100644 index 0000000000..6478186902 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/hvigorfile.ts @@ -0,0 +1,2 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { appTasks } from '@ohos/hvigor-ohos-plugin'; \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/oh-package-lock.json5 b/code/Solutions/OppTrans/BluetoothOpp/oh-package-lock.json5 new file mode 100644 index 0000000000..b73134ed2b --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/oh-package-lock.json5 @@ -0,0 +1,15 @@ +{ + "lockfileVersion": 2, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "@ohos/hypium@1.0.11": "@ohos/hypium@1.0.11" + }, + "packages": { + "@ohos/hypium@1.0.11": { + "resolved": "https://repo.harmonyos.com/ohpm/@ohos/hypium/-/hypium-1.0.11.tgz", + "integrity": "sha512-KawcLnv43C3QIYv1UbDnKCFX3MohtDxGuFvzlUxT/qf2DBilR56Ws6zrj90LdH6PjloJQwOPESuBQIHBACAK7w==", + "registryType": "ohpm", + "shasum": "fa799d273fa7d921701578c5e7084849354a4af0" + } + } +} \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/oh-package.json5 b/code/Solutions/OppTrans/BluetoothOpp/oh-package.json5 new file mode 100644 index 0000000000..b40dd79c12 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/oh-package.json5 @@ -0,0 +1,11 @@ +{ + "license": "ISC", + "devDependencies": { + "@ohos/hypium": "1.0.11" + }, + "name": "bluetoothopp", + "description": "example description", + "repository": {}, + "version": "1.0.0", + "dependencies": {} +} diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.cer b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.cer new file mode 100644 index 0000000000..d1dbf53df2 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.cer @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIICFjCCAZugAwIBAgIIKm0UFAfvhgQwCgYIKoZIzj0EAwMwYzELMAkGA1UEBhMC +Q04xFDASBgNVBAoTC09wZW5IYXJtb255MRkwFwYDVQQLExBPcGVuSGFybW9ueSBU +ZWFtMSMwIQYDVQQDExpPcGVuSGFybW9ueSBBcHBsaWNhdGlvbiBDQTAeFw0yNDAx +MTUxMTM5MDlaFw0zNDAxMTIxMTM5MDlaMEoxFTATBgNVBAMMDGlkZV9kZW1vX2Fw +cDENMAsGA1UECxMEVW5pdDEVMBMGA1UEChMMT3JnYW5pemF0aW9uMQswCQYDVQQG +EwJDTjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbJ8AqxiUMpbrG8JV8xjckR +/syp+S491HSubkcC2Y4ZFNS9o0x3CR6eLwePBkJonLsqN9+0mxD5ggO5jHyI2h2j +UjBQMB0GA1UdDgQWBBSuhZIhWskdGLgWRk/NJ1srDk8gGDAOBgNVHQ8BAf8EBAMC +B4AwHwYDVR0jBBgwFoAU24a3IhbVC6FLt90le7nxBX2iLUcwCgYIKoZIzj0EAwMD +aQAwZgIxALroopgy9gLYTzOe/Xui/f3pL4NUbTsq0xNIWwAFrS2aCMXph25sztD/ +Q/j2VGjCNgIxAOg5w8Yxv1Zl/LpbFVHkdz6hAs8aDO5JNtOjq3k1xvgazAcBNLIm +poY3IMz99wioCA== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICYTCCAeWgAwIBAgIEHmXAPTAMBggqhkjOPQQDAwUAMGgxCzAJBgNVBAYTAkNO +MRQwEgYDVQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkgVGVh +bTEoMCYGA1UEAxMfT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gUm9vdCBDQTAeFw0y +MTAyMDIxMjE1MzJaFw00OTEyMzExMjE1MzJaMGMxCzAJBgNVBAYTAkNOMRQwEgYD +VQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkgVGVhbTEjMCEG +A1UEAxMaT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gQ0EwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAQhnu7Hna8XNa2KyqRf5+lBJScE4xqf89N0g0OuqAb2re8nGsvWkw26 +uDekfnBYicd+G3Cydqa2zFIwV7Talyg2ULW3r8KbGpyl84mJEPPRmCGJ+H9gtCsf ++OrJ4Y76LVWjYzBhMB8GA1UdIwQYMBaAFBc6EKGrGXzlAE+s0Zgnsphadw7NMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTbhrciFtUL +oUu33SV7ufEFfaItRzAMBggqhkjOPQQDAwUAA2gAMGUCMG3cXjiDmXTvf7D4Omhf +qcc2nuO+EMfWE+N9ZhBP5UhV34mAGWi3SfLU6rcV0urWEQIxAMYIb3epOnKhUrcm +Lfu1WKzFlpYQwmw73RaCHP2I3k6NcuWOYeNwWXSNZ8o0nzvaLg== +-----END CERTIFICATE----- diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.csr b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.csr new file mode 100644 index 0000000000..b88417a17c --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.csr @@ -0,0 +1,9 @@ +-----BEGIN NEW CERTIFICATE REQUEST----- +MIIBNTCB3AIBADBKMRUwEwYDVQQDDAxpZGVfZGVtb19hcHAxDTALBgNVBAsTBFVu +aXQxFTATBgNVBAoTDE9yZ2FuaXphdGlvbjELMAkGA1UEBhMCQ04wWTATBgcqhkjO +PQIBBggqhkjOPQMBBwNCAASWyfAKsYlDKW6xvCVfMY3JEf7MqfkuPdR0rm5HAtmO +GRTUvaNMdwkeni8HjwZCaJy7KjfftJsQ+YIDuYx8iNodoDAwLgYJKoZIhvcNAQkO +MSEwHzAdBgNVHQ4EFgQUroWSIVrJHRi4FkZPzSdbKw5PIBgwCgYIKoZIzj0EAwID +SAAwRQIgd8C+BuFeHDO6Me4I+XnmVqzhzXtHP0xjjXfVOM3ijz0CIQD2/ck9xxk7 +hsrqsJsS4ntCXZ1YTBfrX3VJRsCVeIDylw== +-----END NEW CERTIFICATE REQUEST----- diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p12 b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p12 new file mode 100644 index 0000000000000000000000000000000000000000..6f9010037563fdbdce8d883def74089e2494bd98 GIT binary patch literal 1128 zcmXqLVo70QWHxAG;bY^}YV&CO&dbQoxS)yoKT8wyZ-XZ0?*>hbdMHwi@+?h^(m-Kx zAQoohhU((sVq{v-xYwX@mq8j_Ju9z4q=5y3%VVI;BBFDwU+C#6rp`ZU778a^{C0Fa z&(vXJQWs!iR50LSX?S4++UbE`tK9QM+(})SEfPN3@M(_8|zZW{r)?Rq8 zxuJ>4Kw{FXwWfW$wWGH#yA3)|88K*P3@@TuoG~&r`A=T)zP)w_<*&C_2Va1-sUCR z$7i2P^Z(EseWovVpTA7_zEY!2G zE^E!R4RRkNUe+irb1j?8?_+%GoV6bR-9Y|F8&&6P^>@`@`E6fnv_h%4;zy6n(nsH9 zCv&g1vAWOWu~PYv>idTE9-^rkg_|d8i7vJ~u)>x9?dD}i9H-x1)luQQDBro(%*OiD z1e<$e&(b%0@^mpoF=joo`&)P*cnPP){H(tj+=t8DioA7ix*vU){W5zWL+sJHKg7IT z7{0L-o#n_=Hk&}NsH_u#c&GuL@bjptaA!dQVI6qL51pu44&V~R0 literal 0 HcmV?d00001 diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p7b b/code/Solutions/OppTrans/BluetoothOpp/signature/bluetoothopp.p7b new file mode 100644 index 0000000000000000000000000000000000000000..643c492a22632744bc829299b23eda017b9a0e26 GIT binary patch literal 3436 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 Y&|`ld)4nL{wQT;6*WL=;nqIp6zoCm%FaQ7m literal 0 HcmV?d00001 diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/ac/15289cf25ff14683bec511de83404197 b/code/Solutions/OppTrans/BluetoothOpp/signature/material/ac/15289cf25ff14683bec511de83404197 new file mode 100644 index 0000000000..8f9f34bcea --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/signature/material/ac/15289cf25ff14683bec511de83404197 @@ -0,0 +1 @@ +y̋;6XBT \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/ce/74968108cf77439cb81ab093fafa433a b/code/Solutions/OppTrans/BluetoothOpp/signature/material/ce/74968108cf77439cb81ab093fafa433a new file mode 100644 index 0000000000000000000000000000000000000000..dad0f1022dfe14a112ce0c7f308d07c44651dec2 GIT binary patch literal 48 zcmV-00MGvb001CqPB{IQ9sa8X-X)ZA$wVPv=&8V^4>uNhe!g2Ir6~#zDP(q&EXHr) GH+z7|suOqs literal 0 HcmV?d00001 diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/0/5ab1f470e3f54dae851ceb943c486769 b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/0/5ab1f470e3f54dae851ceb943c486769 new file mode 100644 index 0000000000..7aa1f25078 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/0/5ab1f470e3f54dae851ceb943c486769 @@ -0,0 +1 @@ +;"# \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/1/9c7bb337005f47079d87ae9373bca94d b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/1/9c7bb337005f47079d87ae9373bca94d new file mode 100644 index 0000000000..edba662a6a --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/1/9c7bb337005f47079d87ae9373bca94d @@ -0,0 +1 @@ +h!Sxu 3~ \ No newline at end of file diff --git a/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/2/ea87333a7391483e9e84888a1b0854fb b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/2/ea87333a7391483e9e84888a1b0854fb new file mode 100644 index 0000000000..dc1575e644 --- /dev/null +++ b/code/Solutions/OppTrans/BluetoothOpp/signature/material/fd/2/ea87333a7391483e9e84888a1b0854fb @@ -0,0 +1 @@ +:ܠ&~ Ie \ No newline at end of file -- Gitee