HarmonyOS鸿蒙Next中电脑获取本设备udid
HarmonyOS鸿蒙Next中电脑获取本设备udid Windows电脑通过usb线连接鸿蒙电脑,在cmd窗口输入:hdc shell bm get --udid,可以获取鸿蒙电脑的udid。如果不连接其他设备,鸿蒙电脑可以获取本设备的udid吗
在鸿蒙电脑终端输入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。
依据:
可以,但要分情况。
如果你说的是:
鸿蒙 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。该命令调用的是设备内的包管理服务,与是否连接外部设备无关。

