鸿蒙开发设备管理:【@ohos.distributedHardware.deviceManager (设备管理)】

设备管理

本模块提供分布式设备管理能力。

系统应用可调用接口实现如下功能:

  • 注册和解除注册设备上下线变化监听
  • 发现周边不可信设备
  • 认证和取消认证设备
  • 查询可信设备列表
  • 查询本地设备信息,包括设备名称,设备类型和设备标识

icon-note.gif 说明:

  • 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
  • 本模块接口为系统接口,三方应用不支持调用。

导入模块

import deviceManager from '@ohos.distributedHardware.deviceManager';

deviceManager.createDeviceManager

createDeviceManager(bundleName: string, callback: AsyncCallback): void

创建一个设备管理器实例。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    参数名类型必填说明
    bundleNamestring指示应用程序的包名。
    callbackAsyncCallback<[DeviceManager]>DeviceManager实例创建时调用的回调,返回设备管理器对象实例。
  • 示例:

    deviceManager.createDeviceManager("ohos.samples.jshelloworld", (err, data) => {     if (err) { console.info("createDeviceManager err:" + JSON.stringify(err));    return;}console.info("createDeviceManager success");this.dmInstance = data;
    });
    

DeviceInfo

设备信息。

系统能力:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

名称类型必填描述
deviceIdstring设备的唯一标识。
deviceNamestring设备名称。
deviceType[DeviceType]设备类型。
networkId8+string设备网络标识。

DeviceType

表示设备类型的枚举类。

系统能力:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

名称默认值说明
SPEAKER0x0A智能音箱
PHONE0x0E手机
TABLET0x11平板
WEARABLE0x6D智能穿戴
TV0x9C智慧屏
CAR0x83
UNKNOWN_TYPE0未知设备

DeviceStateChangeAction

表示设备状态变化的枚举。

系统能力:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

名称默认值说明
ONLINE0设备上线。
READY1设备就绪,设备信息同步已完成。
OFFLINE2设备下线。
CHANGE3设备信息更改。

SubscribeInfo

发现信息。

系统能力:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

名称类型必填描述
subscribeIdnumber发现标识,用于标识不同的发现周期。
mode[DiscoverMode]发现模式。
medium[ExchangeMedium]发现类型。
freq[ExchangeFreq]发现频率。
isSameAccountboolean是否同账号。
isWakeRemoteboolean是否唤醒设备。
capability[SubscribeCap]发现能力。

DiscoverMode

表示发现模式的枚举。

系统能力:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

名称默认值说明
DISCOVER_MODE_PASSIVE0x55被动模式。
DISCOVER_MODE_ACTIVE0xAA主动模式。

ExchangeMedium

表示发现类型的枚举。

系统能力:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

名称默认值说明
AUTO0自动发现类型。
BLE1蓝牙发现类型。
COAP2WiFi发现类型。
USB3USB发现类型。

ExchangeFreq

表示发现频率的枚举。

系统能力:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

名称默认值说明
LOW0低频率。
MID1中频率。
HIGH2高频率。
SUPER_HIGH3超高频率。

SubscribeCap

表示发现能力的枚举。

系统能力:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

名称默认值说明
SUBSCRIBE_CAPABILITY_DDMP0DDMP能力,后续会被废弃。
SUBSCRIBE_CAPABILITY_OSD1OSD能力。

AuthParam

认证参数。

系统能力:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

名称类型必填描述
authTypenumber认证类型。
extraInfo{[key:string] : any}认证参数可扩展字段。

AuthInfo

认证信息。

系统能力:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

名称类型必填描述
authTypenumber认证类型。
tokennumber认证Token。
extraInfo{[key:string] : any}认证信息可扩展字段。

DeviceManager

设备管理实例,用于获取可信设备和本地设备的相关信息。在调用DeviceManager的方法前,需要先通过createDeviceManager构建一个DeviceManager实例dmInstance。

release

release(): void

设备管理实例不再使用后,通过该方法释放DeviceManager实例。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 示例:

    dmInstance.release();
    

getTrustedDeviceListSync

getTrustedDeviceListSync(): Array

同步获取所有可信设备列表。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 返回值:

    名称说明
    Array<[DeviceInfo]>返回可信设备列表。
  • 示例:

    var deviceInfoList = dmInstance.getTrustedDeviceListSync();
    

getTrustedDeviceList8+

getTrustedDeviceList(callback:AsyncCallback<Array>): void

获取所有可信设备列表。使用callback异步回调。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    callbackAsyncCallback<Array<[DeviceInfo]>>获取所有可信设备列表的回调,返回设备信息。
  • 示例:

    dmInstance.getTrustedDeviceList((err, data) => {console.log("getTrustedDeviceList err: " + JSON.stringify(err));console.log('get trusted device info: ' + JSON.stringify(data));}
    );
    

getTrustedDeviceList8+

getTrustedDeviceList(): Promise<Array>

获取所有可信设备列表。使用Promise异步回调。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 返回值:

    类型说明
    Promise<Array<[DeviceInfo]>>Promise实例,用于获取异步返回结果。
  • 示例:

    dmInstance.getTrustedDeviceList().then((data) => { console.log('get trusted device info: ' + JSON.stringify(data));
    }).catch((err) => {console.log("getTrustedDeviceList err: " + JSON.stringify(err));
    });
    

getLocalDeviceInfoSync8+

getLocalDeviceInfoSync(): [DeviceInfo]

同步获取本地设备信息。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 返回值:

    名称说明
    Array<[DeviceInfo]>返回可信设备列表。
  • 示例:

    var deviceInfo = dmInstance.getLocalDeviceInfoSync();
    

getLocalDeviceInfo8+

getLocalDeviceInfo(callback:AsyncCallback): void

获取本地设备信息。使用callback异步回调。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    callbackAsyncCallback<[DeviceInfo]>获取本地设备信息。
  • 示例:

    dmInstance.getLocalDeviceInfo((err, data) => {console.log("getLocalDeviceInfo err: " + JSON.stringify(err));console.log('get local device info: ' + JSON.stringify(data));}
    );
    

getLocalDeviceInfo8+

getLocalDeviceInfo(): Promise

获取本地设备信息。使用Promise异步回调。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 返回值:

    类型说明
    Promise<[DeviceInfo]>Promise实例,用于获取异步返回结果。
  • 示例:

    dmInstance.getLocalDeviceInfo().then((data) => { console.log('get local device info: ' + JSON.stringify(data));
    }).catch((err) => {console.log("getLocalDeviceInfo err: " + JSON.stringify(err));
    });
    

startDeviceDiscovery

startDeviceDiscovery(subscribeInfo: SubscribeInfo): void

发现周边设备。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    subscribeInfo[SubscribeInfo]发现信息。
  • 示例:

    //生成发现标识,随机数确保每次调用发现接口的标识不一致
    var subscribeId = Math.floor(Math.random() * 10000 + 1000);
    var subscribeInfo = {"subscribeId": subscribeId,"mode": 0xAA, //主动模式"medium": 0,  //自动发现类型,同时支持多种发现类型"freq": 2,    //高频率"isSameAccount": false,"isWakeRemote": false,"capability": 1
    };
    dmInstance.startDeviceDiscovery(subscribeInfo); //当有设备发现时,通过deviceFound回调通知给应用程序
    

stopDeviceDiscovery

stopDeviceDiscovery(subscribeId: number): void

停止发现周边设备。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    subscribeIdnumber发现标识。
  • 示例:

    //入参需要和startDeviceDiscovery接口传入的subscribeId配对使用
    dmInstance.stopDeviceDiscovery(subscribeId);
    

authenticateDevice

authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback: AsyncCallback<{deviceId: string, pinToken ?: number}>): void

认证设备。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    deviceInfo[DeviceInfo]设备信息。
    authParam[AuthParam]认证参数。
    callbackAsyncCallback<{ deviceId: string, pinToken ?: number }>认证结果回调。
  • 示例:

    //认证的设备信息,可以从发现的结果中获取
    var deviceInfo ={"deviceId": "XXXXXXXX","deviceName": "",deviceType: 0x0E
    };
    let authParam = {"authType": 1, //认证类型: 1 - 无账号PIN码认证"extraInfo": {} 
    }
    dmInstance.authenticateDevice(deviceInfo, authParam, (err, data) => {if (err) {console.info(TAG + "authenticateDevice err:" + JSON.stringify(err));return;}console.info(TAG + "authenticateDevice result:" + JSON.stringify(data));token = data.pinToken;
    });
    

unAuthenticateDevice8+

unAuthenticateDevice(deviceInfo: DeviceInfo): void

解除认证设备。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    deviceInfo[DeviceInfo]设备信息。
  • 示例:

    dmInstance.unAuthenticateDevice(deviceInfo);
    

verifyAuthInfo

verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback<{deviceId: string, level: number}>): void

验证认证信息。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    authInfo[AuthInfo]认证信息。
    authInfoAsyncCallback<{ deviceId: string, level: number }>验证结果回调。
  • 示例:

    let authInfo = {"authType": 1,"token": xxxxxx,"extraInfo": {}
    }
    dmInstance.verifyAuthInfo(authInfo, (err, data) => {if (err) {console.info(TAG + "verifyAuthInfo err:" + JSON.stringify(err));return;}console.info(TAG + "verifyAuthInfo result:" + JSON.stringify(data));
    });
    

on(‘deviceStateChange’)

on(type: ‘deviceStateChange’, callback: Callback<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void

注册设备状态回调。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    typestring注册设备状态回调,固定为deviceStateChange。
    callbackCallback<{ action: [DeviceStateChangeAction], device: [DeviceInfo] }>指示要注册的设备状态回调,返回设备状态和设备信息。
  • 示例:

    dmInstance.on('deviceStateChange', (data) => {      console.info("deviceStateChange on:" + JSON.stringify(data));}
    );
    

off(‘deviceStateChange’)

off(type: ‘deviceStateChange’, callback?: Callback<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void

取消注册设备状态回调。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    typestring根据应用程序的包名取消注册设备状态回调。
    callbackCallback<{ action: [DeviceStateChangeAction], device: [DeviceInfo] }>指示要取消注册的设备状态回调,返回设备状态和设备信息。
  • 示例:

    dmInstance.off('deviceStateChange', (data) => {      console.info('deviceStateChange' + JSON.stringify(data));}
    );
    

on(‘deviceFound’)

on(type: ‘deviceFound’, callback: Callback<{ subscribeId: number, device: DeviceInfo }>): void

注册发现设备回调监听。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    typestring注册设备发现回调,以便在发现周边设备时通知应用程序。
    callbackCallback<{ subscribeId: number, device: DeviceInfo }>注册设备发现的回调方法。
  • 示例:

    dmInstance.on('deviceFound', (data) => {console.info("deviceFound:" + JSON.stringify(data));}
    );
    

off(‘deviceFound’)

off(type: ‘deviceFound’, callback?: Callback<{ subscribeId: number, device: DeviceInfo }>): void

取消注册设备发现回调。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    typestring取消注册设备发现回调。
    callbackCallback<{ subscribeId: number, device: DeviceInfo }>指示要取消注册的设备发现回调,返回设备状态和设备信息。
  • 示例:

    dmInstance.off('deviceFound', (data) => {      console.info('deviceFound' + JSON.stringify(data));}
    );
    

on(‘discoverFail’)

on(type: ‘discoverFail’, callback: Callback<{ subscribeId: number, reason: number }>): void

注册设备发现失败回调监听。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    typestring注册设备发现失败回调,以便在发现周边设备失败时通知应用程序。
    callbackCallback<{ subscribeId: number, reason: number }>注册设备发现失败的回调方法。
  • 示例:

    dmInstance.on('discoverFail', (data) => {this.log("discoverFail on:" + JSON.stringify(data));}
    );
    

off(‘discoverFail’)

off(type: ‘discoverFail’, callback?: Callback<{ subscribeId: number, reason: number }>): void

取消注册设备发现失败回调。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    typestring取消注册设备发现失败回调。
    callbackCallback<{ subscribeId: number, reason: number }>指示要取消注册的设备发现失败回调。
  • 示例:

    dmInstance.off('deviceFound', (data) => {      console.info('deviceFound' + JSON.stringify(data));}
    );
    

on(‘serviceDie’)

on(type: ‘serviceDie’, callback: () => void): void

注册设备管理服务死亡监听。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    typestring注册serviceDie回调,以便在devicemanager服务异常终止时通知应用程序。
    callback() => void注册serviceDie的回调方法。
  • 示例:

    dmInstance.on("serviceDie", () => {      console.info("serviceDie on");}
    );
    

off(‘serviceDie’)

off(type: ‘serviceDie’, callback?: () => void): void

取消注册设备管理服务死亡监听。

系统能力:SystemCapability.DistributedHardware.DeviceManager

  • 参数:

    名称参数类型必填说明
    typestring取消注册serviceDie回调,以便在devicemanager服务异常终止时通知应用程序。
    callback() => void取消注册serviceDie的回调方法。

在这里插入图片描述

  • 示例:

    dmInstance.off("serviceDie", () => {      console.info("serviceDie off");}
    );
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/363469.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是ArchiMate?有优缺点和运用场景?

一、什么是ArchiMate? ArchiMate是一种由The Open Group发布的企业级标准&#xff0c;它是一种整合多种架构的可视化业务分析模型语言&#xff0c;也属于架构描述语言&#xff08;ADL&#xff09;。ArchiMate主要从业务、应用和技术三个层次&#xff08;Layer&#xff09;&…

Web渗透:php反序列化漏洞

反序列化漏洞&#xff08;Deserialization Vulnerability&#xff09;是一种在应用程序处理数据的过程中&#xff0c;因不安全的反序列化操作引发的安全漏洞&#xff1b;反序列化是指将序列化的数据&#xff08;通常是字节流或字符串&#xff09;转换回对象的过程&#xff0c;如…

k8s架构设计思想

1.谷歌borg云计算管理平台 一类&#xff1a;infrastucture platform software 另一类&#xff1a;borg为主的非虚拟化技术&#xff0c;调度进程 核心是轻量级作业调度&#xff0c;不是做虚拟化/云平台的 borg本身用了一些容器技术 生产业务product workload要求高可用&#xf…

AI 基础设施要点——AB Periasamy 和 Matthew DeMello 主持的 AI

MinIO 的联合创始人兼首席执行官 AB Periasamy 最近在 AI in Business 播客中亮相&#xff0c;他与 Emerj 的高级编辑 Matthew DeMello 就企业的 AI 基础设施和对象存储进行了丰富的对话。 在这篇博文中&#xff0c;我们将带您了解所讨论内容的删节版本。让我们开始吧。 AB 和…

操作系统之《PV操作》【知识点+详细解题过程】

1、并发进程 &#xff1a; 并发的实质是一个处理器在几个进程之间的多路复用&#xff0c;并发是对有限的物理资源强制行使多用户共享&#xff0c;消除计算机部件之间的互等现象&#xff0c;以提高系统资源利用率。 &#xff08;1&#xff09;并发进程——互斥性&#xff1a; 进…

ingress相关yaml文件报错且相关资源一切正常解决方法

今天在执行ingress相关文件的时候莫名其妙报错了&#xff0c;问了别人得知了这个方法 执行ingress相关文件报错 01.yaml是我自己创建关于ingress的yaml文件 报错信息 且相关资源一切正常 解决方法 kubectl get validatingwebhookconfigurations删除ingress-nginx-admissio…

在Qt中,直接include <moc_xxxxx.cpp> 为什么不会出现符号冲突的错误?

在逛Qt官方社区的时候看到这样一个帖子&#xff1a; https://forum.qt.io/topic/117973/how-does-include-moc_-cpp-work 大概的意思是moc_xxx.cpp如果已经被编译器编译&#xff0c;那么在另一个cpp文件中include同一个moc_xxx.cpp应该出现符号冲突才对&#xff0c;但是Qt却能正…

【RNN练习】LSTM-火灾温度预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前期准备工作 import torch.nn.functional as F import numpy as np import pandas as pd import torch from torch import nn1. 导入数据 data pd.read_cs…

汽车抬头显示器HUD阳光倒灌实验太阳光模拟器

简述 HUD阳光倒灌实验是评估汽车抬头显示器&#xff08;HUD&#xff09;在强烈日照条件下的性能表现的一种测试方法。该实验通过模拟太阳光照射&#xff0c;检测HUD在阳光直射下的显示效果&#xff0c;以确保驾驶者在强烈日照下仍能清晰地看到HUD显示的信息&#xff0c;从而提…

【php】【mysql】【layui】 原生初级简易留言簿系统成品代码动态网站开发网页WEB浏览器端B/S结构

更多项目点击&#x1f446;&#x1f446;&#x1f446;完整项目成品专栏 【php】【mysql】【layui】 原生初级简易留言簿系统成品代码动态网站开发网页WEB浏览器端B/S结构 获取源码方式项目说明&#xff1a;文件包含&#xff1a;项目运行环境项目运行截图 获取源码方式 加Q群…

【地质灾害监测实现有效预警,44人提前安全转移】

6月13日14时&#xff0c;国信华源地质灾害监测预警系统提前精准预警&#xff0c;安全转移10户44人。 该滑坡隐患点通过科学部署国信华源裂缝计、倾角加速度计、雨量计、预警广播等自动化、智能化监测预警设备&#xff0c;实现了对隐患点裂缝、位移、降雨量等关键要素的实时动态…

DBdoctor产品介绍

基本信息 DBdoctor是一款企业级数据库监控、巡检、性能诊断、SQL审核与优化平台&#xff0c;致力于解决一切数据库性能问题。采用eBPF技术可对数据库做细粒度的扫描&#xff0c;帮助您一分钟内找到数据库性能问题&#xff0c;实现性能诊断百倍提效。针对数据库性能诊断门槛高、…

信息化与农业生产的深度融合

信息化与农业生产的深度融合 信息化与农业生产的深度融合&#xff0c;是现代农业发展的一个重要趋势&#xff0c;它不仅促进了农业生产效率的显著提升&#xff0c;还为实现农业可持续发展和精准管理提供了强有力的支撑。这一过程不仅仅是技术的简单叠加&#xff0c;更是农业生…

自研网关架构设计

网关项目 1. 了解网关网关横向对比为什么自研网关 2. 架构设计技术栈技术要点异步化设计使用缓存缓冲合理使用串行化吞吐量为王合适的工作线程 架构图 1. 了解网关 概念 访问数据、业务逻辑或功能的 “前门”负责处理接受和处理调用过程中的所有任务 类型 RESTful APl 使用…

基于DPU的Ceph存储解决方案

1. 方案背景和挑战 Ceph是一个高度可扩展、高性能的开源分布式存储系统&#xff0c;设计用于提供优秀的对象存储、块存储和文件存储服务。它的几个核心特点是&#xff1a; 弹性扩展&#xff1a;Ceph能够无缝地水平扩展存储容量和性能&#xff0c;只需添加新的存储节点即可&am…

探索绿色消费新纪元:消费增值模式

大家好&#xff01;我是来自一家备受瞩目的科技公司的产品经理&#xff0c;我叫吴军。今天&#xff0c;我非常荣幸能与大家分享一种正在市场上引起广泛关注的创新商业模式——消费增值模式。 近年来&#xff0c;随着环保意识的日益增强&#xff0c;绿色消费逐渐成为了新时代的消…

【思科】IPv6 过渡技术 - IPv6 in IPv4隧道

【思科】IPv6 过渡技术 - IPv6 in IPv4隧道 实验要求实现思路IPv6 in IPv4 与 GRE 不同点注意点配置R1基础配置OSPFv3 局域网可达 R2基础配置局域网环境(OSPFv3)&#xff1a;IPv6 网络IPv6 in IPv4隧道 R3R4基础配置局域网环境(OSPFv3)&#xff1a;IPv6 网络IPv6 in IPv4隧道 R…

css做旋转星球可举一反三

<!DOCTYPE html> <html lang"en"><head> <meta charset"UTF-8" /> <title>旋转的星球</title> <style type"text/css">.box {/*position: relative;*/position: absolute;width: 139px;height: 139p…

菜籽桌面4.5.0~4.5.1常见问题解答

目录 如何刷机&#xff1f; 刷机失败&#xff1f; 无法方控&#xff1f; 无法画中画? 原车音乐跟我安装的音乐一起播放&#xff1f; 原车音乐停了&#xff0c;我安装的软件也跟着没声音了&#xff1f; 调节声音时忽大忽小&#xff1f; 怎么安装软件&#xff1f; 软件…

访问外网的安全保障——反向沙箱

反向沙箱作为一种网络安全技术&#xff0c;其核心理念在于通过构建一个隔离且受控的环境&#xff0c;来有效阻止潜在的网络威胁对真实系统的影响。在当今日益复杂的网络环境中&#xff0c;如何借助反向沙箱实现安全上网&#xff0c;已成为众多用户关注的焦点。 随着信息化的发…