标识符

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'}

了解详情

  • 如需详细了解硬件标识符,请参阅 DeviceIdentifierAPI 参考文档
  • 如需查看允许使用的制造商名称和设备型号的列表,请查看制造商名称参考文档。
  • 如需查看兼容的 ChromeOS 设备列表,请参阅 ChromeOS 帮助中心