使用的核心APIdeviceManager核心代码解释1.在module.json5文件中,添加如下权限配置 "requestPermissions":[ { "name": "ohos.permission.DISTRIBUTED_DATASYNC" } ],核心代码如下:import deviceManager from '@ohos.distributedDeviceManager'; import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl' import { common } from '@kit.AbilityKit'; import { router } from '@kit.ArkUI'; import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; @Entry @Component struct Index { @State message: string = '设备列表'; @State myDeviceId: string = 'wait for data'; @State flagA: boolean = true; @State flagB: boolean = false; dmInstance: deviceManager.DeviceManager | null = null onPageShow(): void { let checker = abilityAccessCtrl.createAtManager() let context = getContext() as common.UIAbilityContext const permissions: Array<Permissions> = ["ohos.permission.DISTRIBUTED_DATASYNC"]; checker.requestPermissionsFromUser(context, permissions).then((data) => { }) } build() { Row() { Column() { Text("myDeviceId - " + this.myDeviceId) Button("startMonitor") .onClick(()=>{ try { //这里构造一个对象并赋值,原因是同一个包名构造的对象并不是单例的 this.dmInstance = deviceManager.createDeviceManager("com.javalee.application") this.myDeviceId = this.dmInstance.getLocalDeviceId() this.dmInstance.on('discoverSuccess', (data) => { hilog.info(0x0000, 'testTag', '%{public}s', JSON.stringify(data)); }); // this.dmInstance.startDiscovering(discoverParam, filterOptions); } catch (err) { let e: BusinessError = err as BusinessError; console.error('testTag - createDeviceManager errCode:' + e.code + ',errMessage:' + e.message); } }) Button("startDiscover").onClick(() => { let discoverParam: Record<string, number> = { 'discoverTargetType': 1 }; let filterOptions: Record<string, number> = { 'availableStatus': 0 }; try { // this.dmInstance = deviceManager.createDeviceManager("com.javalee.application")//这行注掉功能正常,开启异常 // let myManage = deviceManager.createDeviceManager("com.javalee.application") // this.myDeviceId = this.dmInstance.getLocalDeviceId() // this.dmInstance.on('discoverSuccess', (data) => { // hilog.info(0x0000, 'testTag', '%{public}s', JSON.stringify(data)); // }); this.dmInstance!.startDiscovering(discoverParam, filterOptions); } catch (err) { let e: BusinessError = err as BusinessError; console.error('testTag - startDiscovering errCode:' + e.code + ',errMessage:' + e.message); } this.flagA = false this.flagB = true }).enabled(this.flagA) Button("stopDiscover").onClick(() => { // let deviceManage = deviceManager.createDeviceManager("com.javalee.application") try { this.dmInstance!.stopDiscovering() } catch (err) { let e: BusinessError = err as BusinessError; console.error('testTag - stopDiscovering errCode:' + e.code + ',errMessage:' + e.message); } this.flagA = true this.flagB = false }).enabled(this.flagB) Button(this.message) .fontSize(30) .fontWeight(FontWeight.Bold) .onClick(() => { router.pushUrl({ url: 'pages/DeviceListPage' }); }) } .width('100%') .align(Alignment.BottomStart) .height('150.00vp') .alignItems(HorizontalAlign.Center) .justifyContent(FlexAlign.SpaceBetween) } .height('100%') .offset({ x: '0.00vp', y: '0.00vp' }) .displayPriority(2) } }实现效果适配的版本信息IDE:DevEco Studio 4.0.1.601SDK:HarmoneyOS 4.0.10.11
使用的核心API
deviceManager
核心代码解释
1.在module.json5文件中,添加如下权限配置
核心代码如下:
实现效果
适配的版本信息