From 8ec9b0bdd3ce72d042b54f43211da05c019bad97 Mon Sep 17 00:00:00 2001 From: gengbingbing Date: Thu, 1 Feb 2024 11:06:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E6=8A=A5=E9=94=99=EF=BC=8C=E4=BD=BF=E7=94=A8?= =?UTF-8?q?API10=E4=B8=8D=E5=85=BC=E5=AE=B9API=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: gengbingbing --- .../ets/common/constants/CommonConstants.ets | 4 +- .../ets/common/utils/RemoteDeviceUtil.ets | 116 +++++++----------- .../entry/src/main/ets/pages/Index.ets | 6 +- .../main/ets/view/CustomDialogComponent.ets | 16 +-- .../DistributeDraw/hvigor/hvigor-config.json5 | 4 +- 5 files changed, 61 insertions(+), 85 deletions(-) diff --git a/Distributed/DistributeDraw/entry/src/main/ets/common/constants/CommonConstants.ets b/Distributed/DistributeDraw/entry/src/main/ets/common/constants/CommonConstants.ets index 8bf77161..1dc8d770 100644 --- a/Distributed/DistributeDraw/entry/src/main/ets/common/constants/CommonConstants.ets +++ b/Distributed/DistributeDraw/entry/src/main/ets/common/constants/CommonConstants.ets @@ -13,11 +13,11 @@ * limitations under the License. */ -import deviceManager from '@ohos.distributedHardware.deviceManager'; +import deviceManager from '@ohos.distributedDeviceManager'; export interface DeviceInfoInterface { subscribeId: number, - device: deviceManager.DeviceInfo + device: deviceManager.DeviceBasicInfo } export interface AuthExtraInfoInterface { diff --git a/Distributed/DistributeDraw/entry/src/main/ets/common/utils/RemoteDeviceUtil.ets b/Distributed/DistributeDraw/entry/src/main/ets/common/utils/RemoteDeviceUtil.ets index f0c59b32..8ae583b6 100644 --- a/Distributed/DistributeDraw/entry/src/main/ets/common/utils/RemoteDeviceUtil.ets +++ b/Distributed/DistributeDraw/entry/src/main/ets/common/utils/RemoteDeviceUtil.ets @@ -13,7 +13,7 @@ * limitations under the License. */ -import deviceManager from '@ohos.distributedHardware.deviceManager'; +import deviceManager from '@ohos.distributedDeviceManager'; import common from '@ohos.app.ability.common'; import Want from '@ohos.app.ability.Want'; import CommonConstants from '../constants/CommonConstants'; @@ -29,10 +29,10 @@ interface RejectError { class RemoteDeviceUtil { private static dmInstance: RemoteDeviceUtil | undefined = undefined; private myDeviceManager?: deviceManager.DeviceManager; - private localDevice?: deviceManager.DeviceInfo; - private deviceList: deviceManager.DeviceInfo[] = []; - private trustedDeviceList: deviceManager.DeviceInfo[] = []; - private discoverList: deviceManager.DeviceInfo[] = []; + private localDevice?: deviceManager.DeviceBasicInfo; + private deviceList: deviceManager.DeviceBasicInfo[] = []; + private trustedDeviceList: deviceManager.DeviceBasicInfo[] = []; + private discoverList: deviceManager.DeviceBasicInfo[] = []; private subscribeId: number = Math.floor(CommonConstants.SUBSCRIBE_ID_RANGE * Math.random()); /** @@ -58,22 +58,13 @@ class RemoteDeviceUtil { await new Promise((resolve: (value: Object | PromiseLike) => void, reject: ((reason?: RejectError) => void)) => { try { - deviceManager.createDeviceManager(CommonConstants.BUNDLE_NAME, - (error, value: deviceManager.DeviceManager) => { - if (error) { - reject(error); - Logger.error('RemoteDeviceModel', - `createDeviceManager failed, error=${JSON.stringify(error)}`); - return; - } - this.myDeviceManager = value; - // Registered trusted device online and offline listening. - this.registerDeviceStateListener(); - this.getLocalDeviceInfo(); - this.getTrustedDeviceList(); - this.initDeviceList(); - resolve(value); - }); + const value = deviceManager.createDeviceManager(CommonConstants.BUNDLE_NAME); + this.myDeviceManager = value; + // Registered trusted device online and offline listening. + this.registerDeviceStateListener(); + this.getLocalDeviceInfo(); + this.getTrustedDeviceList(); + this.initDeviceList(); } catch (error) { Logger.error('RemoteDeviceModel', `createDeviceManager failed, error=${JSON.stringify(error)}`); @@ -91,8 +82,9 @@ class RemoteDeviceUtil { } try { - this.localDevice = this.myDeviceManager.getLocalDeviceInfoSync(); + this.localDevice.deviceId = this.myDeviceManager.getLocalDeviceId(); this.localDevice.deviceName = CommonConstants.LOCALHOST_NAME; + this.localDevice.deviceType = this.myDeviceManager.getDeviceType(this.localDevice.deviceId); } catch (error) { Logger.error('RemoteDeviceModel', `getLocalDeviceInfo failed, error=${JSON.stringify(error)}`); @@ -109,7 +101,7 @@ class RemoteDeviceUtil { } try { - this.trustedDeviceList = this.myDeviceManager.getTrustedDeviceListSync(); + this.trustedDeviceList = this.myDeviceManager.getAvailableDeviceListSync(); } catch (error) { Logger.error('RemoteDeviceModel', `getTrustedDeviceList failed error=${JSON.stringify(error)}`); @@ -124,7 +116,7 @@ class RemoteDeviceUtil { if (this.localDevice !== undefined) { this.addToDeviceList(this.localDevice) } - this.trustedDeviceList.forEach((item: deviceManager.DeviceInfo) => { + this.trustedDeviceList.forEach((item: deviceManager.DeviceBasicInfo) => { this.addToDeviceList(item); }) } @@ -145,11 +137,11 @@ class RemoteDeviceUtil { return; } switch (data.action) { - case deviceManager.DeviceStateChangeAction.ONLINE: { + case deviceManager.DeviceStateChange.AVAILABLE: { this.deviceStateChangeActionOnline(data.device); break; } - case deviceManager.DeviceStateChangeAction.OFFLINE: { + case deviceManager.DeviceStateChange.UNAVAILABLE: { this.deviceStateChangeActionOffline(data.device); break; } @@ -169,7 +161,7 @@ class RemoteDeviceUtil { * * @param device Information about online devices. */ - deviceStateChangeActionOnline(device: deviceManager.DeviceInfo): void { + deviceStateChangeActionOnline(device: deviceManager.DeviceBasicInfo): void { this.trustedDeviceList[this.trustedDeviceList.length] = device; this.addToDeviceList(device); } @@ -179,8 +171,8 @@ class RemoteDeviceUtil { * * @param device Information about offline devices. */ - deviceStateChangeActionOffline(device: deviceManager.DeviceInfo): void { - let list: deviceManager.DeviceInfo[] = []; + deviceStateChangeActionOffline(device: deviceManager.DeviceBasicInfo): void { + let list: deviceManager.DeviceBasicInfo[] = []; for (let i: number = 0; i < this.trustedDeviceList.length; i++) { if (this.trustedDeviceList[i].networkId !== device.networkId) { list.push(this.trustedDeviceList[i]); @@ -202,7 +194,7 @@ class RemoteDeviceUtil { try { this.myDeviceManager.off('deviceStateChange'); - this.myDeviceManager.release(); + deviceManager.releaseDeviceManager(this.myDeviceManager); } catch (err) { Logger.error('RemoteDeviceModel', `unregisterDeviceListCallback stopDeviceDiscovery failed, error=${JSON.stringify(err)}`); @@ -218,10 +210,10 @@ class RemoteDeviceUtil { */ authenticateDevice( context: common.UIAbilityContext, - device: deviceManager.DeviceInfo, + device: deviceManager.DeviceBasicInfo, positionList: Position[] ): void { - let tmpList = this.trustedDeviceList.filter((item: deviceManager.DeviceInfo) => device.deviceId === item.deviceId); + let tmpList = this.trustedDeviceList.filter((item: deviceManager.DeviceBasicInfo) => device.deviceId === item.deviceId); if (tmpList.length > 0) { this.startAbility(context, device, positionList); return; @@ -232,24 +224,11 @@ class RemoteDeviceUtil { return; } - let extraInfo: AuthExtraInfoInterface = { - targetPkgName: context.abilityInfo.bundleName, - appName: context.abilityInfo.applicationInfo.name, - appDescription: CommonConstants.APP_DESCRIPTION, - business: CommonConstants.BUSINESS_TYPE - }; - let authParam: deviceManager.AuthParam = { - 'authType': CommonConstants.AUTH_TYPE, - 'extraInfo': extraInfo + let discoverParam: Record = { + 'discoverTargetType': 1 }; try { - this.myDeviceManager.authenticateDevice(device, authParam, (err) => { - if (err) { - Logger.error('RemoteDeviceModel', - `authenticateDevice error code=${err.code}, msg=${JSON.stringify(err.message)}`); - return; - } - }) + this.myDeviceManager.startDiscovering(discoverParam) } catch (error) { Logger.error('RemoteDeviceModel', `authenticateDevice failed error=${JSON.stringify(error)}`); @@ -263,7 +242,7 @@ class RemoteDeviceUtil { * @param device Device information. * @param positionList Position list. */ - startAbility(context: common.UIAbilityContext, device: deviceManager.DeviceInfo, positionList: Position[]): void { + startAbility(context: common.UIAbilityContext, device: deviceManager.DeviceBasicInfo, positionList: Position[]): void { let wantValue: Want = { bundleName: context.abilityInfo.bundleName, abilityName: CommonConstants.ABILITY_NAME, @@ -285,15 +264,15 @@ class RemoteDeviceUtil { * * @param data Device information. */ - deviceFound(data: DeviceInfoInterface): void { + deviceFound(data: deviceManager.DeviceBasicInfo): void { for (let i: number = 0; i < this.discoverList.length; i++) { - if (this.discoverList[i].deviceId === data.device.deviceId) { + if (this.discoverList[i].deviceId === data.deviceId) { Logger.info('RemoteDeviceModel', `deviceFound device exist=${JSON.stringify(data)}`); return; } } - this.discoverList[this.discoverList.length] = data.device; - this.addToDeviceList(data.device); + this.discoverList[this.discoverList.length] = data; + this.addToDeviceList(data); } /** @@ -308,31 +287,28 @@ class RemoteDeviceUtil { } try { - this.myDeviceManager.on('deviceFound', (data) => { + this.myDeviceManager.on('discoverSuccess', (data) => { if (data === null) { return; } Logger.info('RemoteDeviceModel', `startDeviceDiscovery deviceFound data=${JSON.stringify(data)}`); - this.deviceFound(data); + this.deviceFound(data.device); }); - this.myDeviceManager.on('discoverFail', (data) => { + this.myDeviceManager.off('discoverSuccess', (data) => { if (data === null) { return; } Logger.info('RemoteDeviceModel', `startDeviceDiscovery discoverFail data=${JSON.stringify(data)}`); }); - let info: deviceManager.SubscribeInfo = { - subscribeId: this.subscribeId, - mode: CommonConstants.SUBSCRIBE_MODE, - medium: CommonConstants.SUBSCRIBE_MEDIUM, - freq: CommonConstants.SUBSCRIBE_FREQ, - isSameAccount: false, - isWakeRemote: true, - capability: CommonConstants.SUBSCRIBE_CAPABILITY + let discoverParam: Record = { + 'discoverTargetType': 1 + }; + let filterOptions: Record = { + 'availableStatus': 0 }; - this.myDeviceManager.startDeviceDiscovery(info); + this.myDeviceManager.startDiscovering(discoverParam, filterOptions); } catch (error) { Logger.error('RemoteDeviceModel', `startDeviceDiscovery failed error=${JSON.stringify(error)}`); @@ -349,9 +325,9 @@ class RemoteDeviceUtil { } try { - this.myDeviceManager.stopDeviceDiscovery(this.subscribeId); - this.myDeviceManager.off('deviceFound'); - this.myDeviceManager.off('discoverFail'); + this.myDeviceManager.stopDiscovering(); + this.myDeviceManager.off('discoverSuccess'); + this.myDeviceManager.off('discoverFailure'); } catch (error) { Logger.error('RemoteDeviceModel', `stopDeviceDiscovery failed error=${JSON.stringify(error)}`); @@ -363,7 +339,7 @@ class RemoteDeviceUtil { * * @param device Device information. */ - addToDeviceList(device: deviceManager.DeviceInfo): void { + addToDeviceList(device: deviceManager.DeviceBasicInfo): void { let isExist: boolean = false; for (let i: number = 0; i < this.deviceList.length; i++) { if (device.deviceId === this.deviceList[i].deviceId) { @@ -384,7 +360,7 @@ class RemoteDeviceUtil { * * @param device Device information. */ - deleteFromDeviceList(device: deviceManager.DeviceInfo): void { + deleteFromDeviceList(device: deviceManager.DeviceBasicInfo): void { for (let i: number = 0; i < this.deviceList.length; i++) { if (device.deviceId === this.deviceList[i].deviceId) { this.deviceList.splice(i, 1); diff --git a/Distributed/DistributeDraw/entry/src/main/ets/pages/Index.ets b/Distributed/DistributeDraw/entry/src/main/ets/pages/Index.ets index fd2618ae..7447765d 100644 --- a/Distributed/DistributeDraw/entry/src/main/ets/pages/Index.ets +++ b/Distributed/DistributeDraw/entry/src/main/ets/pages/Index.ets @@ -15,7 +15,7 @@ import common from '@ohos.app.ability.common'; import distributedKVStore from '@ohos.data.distributedKVStore'; -import deviceManager from '@ohos.distributedHardware.deviceManager'; +import deviceManager from '@ohos.distributedDeviceManager'; import CommonConstants from '../common/constants/CommonConstants'; import Position from '../viewmodel/Position'; import KvStoreModel from '../viewmodel/KvStoreModel'; @@ -28,7 +28,7 @@ let storage = LocalStorage.getShared(); @Entry(storage) @Component struct Index { - @StorageLink('deviceList') deviceList: deviceManager.DeviceInfo[] = []; + @StorageLink('deviceList') deviceList: deviceManager.DeviceBasicInfo[] = []; @LocalStorageProp('positionList') positionList: Position[] = []; @LocalStorageProp('updateCanvas') @Watch('updateCanvas') update: boolean = false; private settings: RenderingContextSettings = new RenderingContextSettings(true); @@ -240,7 +240,7 @@ struct Index { */ startAbilityContinuation( context: common.UIAbilityContext, - device: deviceManager.DeviceInfo, + device: deviceManager.DeviceBasicInfo, positionList: Position[] ): void { remoteDeviceModel.authenticateDevice(context, device, positionList); diff --git a/Distributed/DistributeDraw/entry/src/main/ets/view/CustomDialogComponent.ets b/Distributed/DistributeDraw/entry/src/main/ets/view/CustomDialogComponent.ets index a244e7f4..94a51661 100644 --- a/Distributed/DistributeDraw/entry/src/main/ets/view/CustomDialogComponent.ets +++ b/Distributed/DistributeDraw/entry/src/main/ets/view/CustomDialogComponent.ets @@ -14,7 +14,7 @@ */ import common from '@ohos.app.ability.common'; -import deviceManager from '@ohos.distributedHardware.deviceManager'; +import deviceManager from '@ohos.distributedDeviceManager'; import prompt from '@ohos.promptAction'; import CommonConstants from '../common/constants/CommonConstants'; import Position from '../viewmodel/Position'; @@ -30,9 +30,9 @@ function ButtonTextStyle() { export default struct DeviceListDialogComponent { @State selectedIndex: number = CommonConstants.INVALID_INDEX; @Link positionList: Position[]; - @Link deviceList: deviceManager.DeviceInfo[]; + @Link deviceList: deviceManager.DeviceBasicInfo[]; controller?: CustomDialogController; - startAbility: (context: common.UIAbilityContext, device: deviceManager.DeviceInfo, positionList: Position[]) => void + startAbility: (context: common.UIAbilityContext, device: deviceManager.DeviceBasicInfo, positionList: Position[]) => void = () => {}; cancel: () => void = () => {}; @@ -54,7 +54,7 @@ export default struct DeviceListDialogComponent { .height($r('app.float.dialog_title_height')) List() { - ForEach(this.deviceList, (item: deviceManager.DeviceInfo, index: number) => { + ForEach(this.deviceList, (item: deviceManager.DeviceBasicInfo, index: number) => { ListItem() { Column() { Row() { @@ -114,7 +114,7 @@ export default struct DeviceListDialogComponent { } } } - }, (item: deviceManager.DeviceInfo) => item.deviceId) + }, (item: deviceManager.DeviceBasicInfo) => item.deviceId) } .width(CommonConstants.FULL_PERCENT) @@ -176,10 +176,10 @@ export default struct DeviceListDialogComponent { * @param deviceType Device type. * @returns Icon resource. */ - getDeviceTypeIcon(deviceType: deviceManager.DeviceType): Resource { - if ((deviceType === deviceManager.DeviceType.PHONE) || (deviceType === deviceManager.DeviceType.UNKNOWN_TYPE)) { + getDeviceTypeIcon(deviceType: number): Resource { + if ((deviceType === 0x0E) || (deviceType === 0)) { return $r('app.media.ic_public_devices_phone'); - } else if (deviceType === deviceManager.DeviceType.TV) { + } else if (deviceType === 0x9C) { return $r('app.media.ic_smartscreen'); } else { return $r('app.media.ic_smartscreen'); diff --git a/Distributed/DistributeDraw/hvigor/hvigor-config.json5 b/Distributed/DistributeDraw/hvigor/hvigor-config.json5 index f31dbccd..49a7fc06 100644 --- a/Distributed/DistributeDraw/hvigor/hvigor-config.json5 +++ b/Distributed/DistributeDraw/hvigor/hvigor-config.json5 @@ -1,7 +1,7 @@ { - "hvigorVersion": "2.3.0", + "hvigorVersion": "3.0.2", "dependencies": { - "@ohos/hvigor-ohos-plugin": "2.3.0" + "@ohos/hvigor-ohos-plugin": "3.0.2" }, "execution": {}, "logging": {}, -- Gitee