详谈鸿蒙系统的DeviceManager组件

星蔚星
发布于 2021-9-24 16:47
浏览
0收藏

简介

DeviceManager组件是OpenHarmony为开发者提供的一套分布式设备账号无关的认证组网接口。

其组成及依赖如下所示:

详谈鸿蒙系统的DeviceManager组件-鸿蒙开发者社区

目录

foundation/distributedhardware/devicemanager
├── common
│   ├── log             #log相关头文件存放目录
│   └── utils           #公共能力头文件存放目录
├── interfaces
│   ├── inner_kits      #内部接口头文件存放目录
│   │   └── native_cpp  #内部native接口及实现存放目录
│    kits               #外接口头文件存放目录
│       └── js          #外部JS接口及实现存放目录
└── services
    └── devicemanagerservice    #devicemanagerservice服务实现核心代码
        ├── include
        │   ├── authdemo        #与设备认证相关头文件(非正式)
        │   └── softbus         #与软总线相关头文件
        └── src                 
            ├── authdemo        #设备认证功能示例代码(非正式)
            └── softbus         #通道建立及组网功能核心代码

约束

  • 开发语言:JS
  • 适用于Hi3516DV300单板等OpenHarmony设备

接口说明

当前版本设备管理服务不具备权限管理的能力。

以下模块的JS接口为非正式API,仅供分布式Demo应用使用,展示分布式能力,不排除对这些接口进行变更的可能性,后续版本将提供正式API。

参见 ohos.distributedHardware.deviceManager.d.ts

原型 描述
createDeviceManager(bundleName: string, callback: AsyncCallback): void 以异步方法获取DeviceManager实例
release(): void 释放DeviceManager实例
getTrustedDeviceListSync(): Array 获取信任设备列表
authenticateDevice(deviceInfo: DeviceInfo): void 设备认证
on(type: ‘authResult’, callback: Callback<{ deviceId: string, status: number, reason: number }>): void 订阅设备认证回调
off(type: ‘authResult’, callback?: Callback<{ deviceId: string, status: number, reason: number }>): void 取消订阅设备认证回调

示例如下:

deviceManager.createDeviceManager(app.getInfo. appID, (err, data) => {
    if (err) {
        console.info(TAG + "createDeviceManager err:" + JSON.stringify(err));
        return;
    }
    console.info(TAG + "createDeviceManager success");
    dmClass = data;
}

var deviceInfo ={
    "deviceId": "XXXXXXXX",
    "deviceName": "",
    deviceType: 0
};
dmClass.authenticateDevice(deviceInfo);

使用说明

当前版本是一个临时Demo认证方案,默认无法成功建立连接和PIN码认证,仅用于验证分布式能力,后续会提供正式的设备认证方案。

如果开发者感兴趣,可以通过修改代码来验证分布式能力。

注:该方法存在一定安全风险,仅用于验证分布式能力。

devicemanager\services\devicemanagerservice\src\authdemo\hichain_adapter.cpp

// PIN_CODE一般为随机6位数字字符串, 例如;
const std::string PIN_CODE = "123456";

// PORT为server端的监听端口号,随机端口范围一般为1024~65534, 例如
const int32_t PORT = 10001;

相关仓

device_manager

device_manager-master.zip 81.84K 60次下载
已于2021-9-24 16:47:24修改
收藏
回复
举报
回复
    相关推荐