DeviceIdentifier
会封装硬件 ID,以标识制造的设备。本文档介绍了如何在零触摸注册 API 中使用标识符。
DeviceIdentifier
用于合并唯一标识设备所需的硬件元数据或 ID。
通过该门户或调用该 API 上传设备数据时,您的组织会包含设备标识符值。由于 DeviceIdentifier
实例不可变,因此您无法使用 API 更改字段值。
必填字段
Android 设备
零触摸注册通常通过 IMEI(或 MEID)移动网络调制解调器 ID 来识别设备。但是,为了支持没有移动网络调制解调器的设备(例如平板电脑),您还可以使用一组不同的字段来标识设备。下表显示了每种设备类型所需的字段:
标识符 | 移动网络 | 仅限 WLAN | 备注 |
---|---|---|---|
hardware_id |
此字段必须为 IMEI 或 MEID 号码。当您在 API 参数中传递 IMEI 值时,零触摸注册会验证这些值的格式。对于具有多个移动网络调制解调器的设备,请参阅双 SIM 卡设备。 | ||
serialNumber |
设备的制造商序列号。序列号区分大小写,而且是从 Build.getSerial() 返回的值。 |
||
model |
设备型号值必须与 Build.MODEL 返回的设备内置值一致。如需查看每个制造商允许使用的值的列表,请参阅型号名称参考。 |
||
manufacturer |
为了使零触摸注册适用于仅支持 WLAN 的设备,manufacturer 字段值必须与 Build.MANUFACTURER 返回的设备内置值一致。对于移动网络设备,manufacturer 字段为可选字段,但建议您填写此字段,以方便客户识别其设备。如需了解详情,请参阅制造商名称参考。 |
如果设备不包含移动网络调制解调器(例如平板电脑或仓库库存扫描仪),请使用“仅限 Wi-Fi”字段。对于所有其他设备,请使用移动网络字段。
双 SIM 卡设备
双 SIM 卡设备包含两个独立的调制解调器,并且有两个 IMEI 识别码。请使用数字上最低的 IMEI 识别码,因为零触摸注册使用最低 IMEI 可以更加可靠地完成注册。
ChromeOS 设备
对于 ChromeOS 设备,移动网络设备和仅支持 Wi-Fi 的设备所需的一组标识符是相同的:
标识符 | 备注 |
---|---|
serialNumber
|
设备的制造商序列号。 |
model
|
设备型号值必须与设备的内置值一致。有关参考信息,请参阅 ChromeOS 型号值列表。 |
chromeOsAttestedDeviceId
|
经认证的设备 ID。有关参考信息,请参阅兼容的 ChromeOS 设备列表。 |
指代设备
查找设备或声明设备所有权时,请使用 DeviceIdentifier
。您需要添加针对设备类型指定的必填字段。
以下代码段显示了用于通过调用 partners.devices.findByIdentifier
搜索特定设备的 IMEI 识别码:
Java
// Create a DeviceIdentifier. DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setImei("123456789012347"); // Perform the search using the zero-touch enrollment API. FindDevicesByDeviceIdentifierRequest body = new FindDevicesByDeviceIdentifierRequest(); body.setLimit(1L); body.setDeviceIdentifier(deviceIdentifier); FindDevicesByDeviceIdentifierResponse response = service .partners() .devices() .findByIdentifier(PARTNER_ID, body) .execute();
.NET
// Create a DeviceIdentifier. var deviceIdentifier = new DeviceIdentifier { Imei = "123456789012347" }; // Perform the search using the zero-touch enrollment API. var body = new FindDevicesByDeviceIdentifierRequest { Limit = 1, DeviceIdentifier = deviceIdentifier }; var response = service.Partners.Devices.FindByIdentifier(body, PartnerId).Execute();
Python
# Create a DeviceIdentifier. device_identifier = {'imei':'123456789012347'} # Perform the search using the zero-touch enrollment API. response = service.partners().devices().findByIdentifier( partnerId=PARTNER_ID, body={'deviceIdentifier':device_identifier, \ 'limit':1}).execute()
以下代码段展示了如何创建仅限 WLAN 的设备标识符:
Java
// Create a device identifier to find a Wi-Fi-only device. DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setManufacturer("Honeywell"); deviceIdentifier.setModel("VM1A"); deviceIdentifier.setSerialNumber("ABcd1235678");
.NET
// Create a device identifier to find a Wi-Fi-only device. var deviceIdentifier = new DeviceIdentifier { Manufacturer = "Honeywell", Model = "VM1A", SerialNumber = "ABcd1235678" };
Python
# Create a device identifier to find a Wi-Fi-only device. device_identifier = {'manufacturer':'Honeywell', \ 'model':'VM1A', 'serialNumber':'ABcd1235678'}
了解详情
- 如需详细了解硬件标识符,请参阅
DeviceIdentifier
的 API 参考文档。 - 如需查看允许使用的制造商名称和设备型号的列表,请查看制造商名称参考文档。
- 如需查看兼容的 ChromeOS 设备列表,请参阅 ChromeOS 帮助中心