回复
     详谈鸿蒙系统的DeviceManager组件
星蔚星
 发布于 2021-9-24 16:47
 浏览
 0收藏
简介
DeviceManager组件是OpenHarmony为开发者提供的一套分布式设备账号无关的认证组网接口。
其组成及依赖如下所示:

目录
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修改
 
        赞
        
 
        收藏 
      
 回复
  相关推荐
 



















