HarmonyOS鸿蒙Next中电脑获取本设备udid

HarmonyOS鸿蒙Next中电脑获取本设备udid Windows电脑通过usb线连接鸿蒙电脑,在cmd窗口输入:hdc shell bm get --udid,可以获取鸿蒙电脑的udid。如果不连接其他设备,鸿蒙电脑可以获取本设备的udid吗

7 回复

在鸿蒙电脑终端输入hdc shell bm get --udid可以获取udid吗

更多关于HarmonyOS鸿蒙Next中电脑获取本设备udid的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


补充下官方依据:bm 工具的 get 命令用于获取设备 UDID,但 bm 文档同时说明使用前需要通过 hdc shell 进入目标设备;hdc 文档也说明 hdc 是电脑端 client/server 与设备端 daemon 组成的调试链路。

因此可以确认的是:在 hdc 能连接到该鸿蒙电脑作为 target 的情况下,进入 hdc shell 后可执行 bm get --udid 获取目标设备 UDID。若不连接其他设备,建议先用 hdc list targets 看本机是否作为 target 注册;如果列表为空,就不能仅靠本机普通终端直接取到。普通应用侧也没有看到公开 API 可直接读取 UDID。

依据:

  1. hdc 调试命令:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/hdc
  2. bm 工具:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/bm-tool

可以,但要分情况。

如果你说的是:

鸿蒙 NEXT PC(HarmonyOS 5/6 纯血PC)

那么理论上:

系统内部自己是能拿到本机UDID的

因为:

hdc shell bm get --udid

本质也是调用系统能力。


但问题在于:

普通应用

是拿不到 UDID 的。

HarmonyOS NEXT 对:

  • UDID
  • SN
  • IMEI
  • MAC

这类设备唯一标识限制非常严格。

普通应用:

没有公开API

直接获取本机 UDID。

否则会涉及:

设备指纹
用户隐私
跨应用跟踪

问题。


所以:

如果你是在终端里操作

鸿蒙PC自己本机终端里:

理论上可以:

hdc shell bm get --udid

但前提是:

本机 hdc server 正常

以及:

hdc 能连接到 localhost target

不过目前很多纯血鸿蒙PC:

默认不会把自己当 target

所以:

hdc list targets

可能是空。

这是正常的。

因为:

hdc主要设计是“外部设备调试”

不是:

本机自调试

目前比较常见的方式:

方法1(最稳)

另一台电脑:

USB / TCP

连接鸿蒙PC。

然后:

hdc shell bm get --udid

方法2

鸿蒙PC开启:

无线调试

然后:

hdc tconn 127.0.0.1:端口

有些版本可行。

但不少版本:

localhost不会注册target

所以不稳定。


方法3(系统级能力)

如果你是:

  • 系统应用
  • 企业定制
  • Device Owner
  • OEM合作

那可以通过:

System API

获取设备标识。

普通应用不行。


所以总结一句:

普通HarmonyOS应用无法直接获取本机UDID。

而:

hdc获取UDID
属于开发调试链路

通常需要:

另一设备连接

或者:

本机开启调试target

才行。

现阶段还是只能 win 通过usb连接 鸿蒙PC 在cmd窗口输入:hdc shell bm get --udid
若鸿蒙PC可安装DevecoStudio,获取可以直接在终端输入命令获取

可以的啊。也是通过命令行直接获取的。利用鸿蒙系统自带的包管理工具(bm)来获取UDID。

开启开发者模式:进入鸿蒙电脑的“设置” > “关于本机”,连续点击“软件版本”7次,激活开发者选项。

返回“设置” > “系统” > “开发者选项”,开启“USB调试”开关(本地操作虽不一定需要,但开启可避免权限问题)。

打开终端应用:

在鸿蒙电脑上找到并打开终端应用(如果系统未预装,可通过应用市场安装终端模拟器)。

执行获取命令:

在终端中直接输入以下命令之一,然后按回车执行:

bm get -u

bm get --udid

命令执行后,终端将直接显示本设备的UDID(一串由字母和数字组成的64位字符串)。

在电脑上使用HDC工具连接鸿蒙Next设备,执行以下命令获取本设备UDID:
hdc shell bm get --udid

hdc shell hidumper -s 10 -a udid

可以。鸿蒙设备(包括“鸿蒙电脑”)自身可以直接获取本机的UDID,无需连接其他设备。在设备上打开终端应用或通过HDC本地连接,直接运行 bm get --udid 即可输出本机UDID。该命令调用的是设备内的包管理服务,与是否连接外部设备无关。

回到顶部