Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
DeviceIdentifier đóng gói mã nhận dạng phần cứng để xác định một thiết bị đã sản xuất. Tài liệu này giải thích cách xử lý giá trị nhận dạng trong API đăng ký không tiếp xúc.
DeviceIdentifier kết hợp siêu dữ liệu hoặc mã nhận dạng phần cứng cần thiết để xác định duy nhất một thiết bị.
Tổ chức của bạn sẽ thêm các giá trị giá trị nhận dạng thiết bị khi tải dữ liệu thiết bị lên thông qua cổng thông tin hoặc gọi API.
Các trường bắt buộc
Thiết bị Android
Quy trình đăng ký không tiếp xúc thường xác định thiết bị theo mã nhận dạng modem di động IMEI (hoặc MEID). Để hỗ trợ các thiết bị không có modem di động, chẳng hạn như máy tính bảng, bạn cũng có thể xác định các thiết bị bằng một nhóm trường khác. Bảng sau đây cho biết các trường mà bạn có thể sử dụng cho từng loại thiết bị:
Số nhận dạng
Mạng di động
Chỉ Wi-Fi
Ghi chú
hardware_id
Trường này phải là số IMEI hoặc MEID. Tính năng đăng ký không tiếp xúc xác thực định dạng của các giá trị IMEI khi bạn truyền các giá trị đó trong đối số API.
hardware_id2
Trường này phải là số IMEI hoặc MEID thứ hai. Tính năng đăng ký không tiếp xúc xác thực định dạng của các giá trị IMEI khi bạn truyền các giá trị đó trong đối số API. Để biết thông tin về các thiết bị có nhiều modem di động, hãy xem phần Thiết bị Dual-SIM.
serialNumber
Số sê-ri của nhà sản xuất cho thiết bị. Số sê-ri có phân biệt chữ hoa chữ thường và giống với giá trị được trả về từ Build.getSerial().
model
Giá trị mẫu thiết bị phải khớp với giá trị tích hợp sẵn của thiết bị được trả về từ Build.MODEL. Hãy xem tài liệu tham khảo về tên mẫu để biết danh sách các giá trị được phép cho từng nhà sản xuất.
manufacturer
Giá trị trường manufacturer phải khớp với giá trị tích hợp sẵn của thiết bị được trả về từ Build.MANUFACTURER. Hãy xem tài liệu tham khảo về tên nhà sản xuất để biết thêm thông tin.
Nếu đăng ký số sê-ri, bạn cũng phải đăng ký nhà sản xuất và kiểu máy để đảm bảo tính năng thiết lập tự động có thể phát hiện thiết bị.
Thiết bị hai SIM
Thiết bị SIM kép bao gồm hai modem riêng biệt và có hai số IMEI. Nếu chỉ đăng ký một IMEI, hãy ưu tiên số IMEI thấp nhất vì tính năng đăng ký không tiếp xúc hoạt động đáng tin cậy hơn với IMEI thấp nhất. Để tăng độ tin cậy, bạn có thể đăng ký thêm số IMEI khác hoặc số sê-ri, nhà sản xuất và kiểu máy.
Cách hiển thị IMEI thứ hai trong cổng thông tin tự động:
Chuyển đến thẻ Thiết bị.
Ở góc trên bên phải, bên cạnh nút Thêm thiết bị, hãy nhấp vào biểu tượng ba dấu chấm more_vert.
Chọn Tuỳ chỉnh bảng.
Chọn hộp đánh dấu IMEI2.
Nhấp vào Lưu.
Thiết bị ChromeOS
Đối với thiết bị ChromeOS, tập hợp giá trị nhận dạng bắt buộc giống nhau đối với thiết bị chỉ có mạng di động và thiết bị chỉ có Wi-Fi:
// Create a DeviceIdentifier.DeviceIdentifierdeviceIdentifier=newDeviceIdentifier();deviceIdentifier.setImei("123456789012347");// Perform the search using the zero-touch enrollment API.FindDevicesByDeviceIdentifierRequestbody=newFindDevicesByDeviceIdentifierRequest();body.setLimit(1L);body.setDeviceIdentifier(deviceIdentifier);FindDevicesByDeviceIdentifierResponseresponse=service.partners().devices().findByIdentifier(PARTNER_ID,body).execute();
.NET
// Create a DeviceIdentifier.vardeviceIdentifier=newDeviceIdentifier{Imei="123456789012347"};// Perform the search using the zero-touch enrollment API.varbody=newFindDevicesByDeviceIdentifierRequest{Limit=1,DeviceIdentifier=deviceIdentifier};varresponse=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()
Đoạn mã sau đây cho biết cách tạo giá trị nhận dạng thiết bị bằng số sê-ri:
Java
// Create a device identifier to find a Wi-Fi-only device.DeviceIdentifierdeviceIdentifier=newDeviceIdentifier();deviceIdentifier.setManufacturer("Honeywell");deviceIdentifier.setModel("VM1A");deviceIdentifier.setSerialNumber("ABcd1235678");
.NET
// Create a device identifier to find a Wi-Fi-only device.vardeviceIdentifier=newDeviceIdentifier{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'}
Tìm hiểu thêm
Để tìm hiểu thêm về giá trị nhận dạng phần cứng, hãy xem tài liệu tham khảo API cho DeviceIdentifier.
Để xem danh sách tên nhà sản xuất và mẫu thiết bị được phép, hãy tham khảo nội dung tham khảo về tên nhà sản xuất.
[null,null,["Cập nhật lần gần đây nhất: 2025-07-25 UTC."],[[["\u003cp\u003eA \u003ccode\u003eDeviceIdentifier\u003c/code\u003e is used to uniquely identify a hardware device and is distinct from \u003ccode\u003edeviceId\u003c/code\u003e, which refers to a record in the API.\u003c/p\u003e\n"],["\u003cp\u003eFor Android devices, identification commonly relies on IMEI or MEID numbers for cellular devices, while Wi-Fi-only devices can use serial number, model, and manufacturer.\u003c/p\u003e\n"],["\u003cp\u003eDual-SIM devices have two IMEI numbers, and while either can be used, it is recommended to register the lowest number and include other information for increased reliability.\u003c/p\u003e\n"],["\u003cp\u003eChromeOS devices require the manufacturer's serial number, device model, and the Attested Device ID for identification.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eDeviceIdentifier\u003c/code\u003e is used to find or claim devices, and the specific required fields vary depending on the device type.\u003c/p\u003e\n"]]],["`DeviceIdentifier` represents hardware for zero-touch enrollment, using hardware IDs like IMEI, serial number, model, and manufacturer. Organizations use these values when uploading device data. Android devices use IMEI/MEID for cellular models, or serial number, model, and manufacturer for Wi-Fi only. Dual-SIM devices have two IMEIs. ChromeOS devices require serial number, model, and `chromeOsAttestedDeviceId`. To find a device, a `DeviceIdentifier` object with required fields is used in the `partners.devices.findByIdentifier` API call.\n"],null,["# Identifiers\n\nA [`DeviceIdentifier`](/zero-touch/reference/reseller/rest/v1/partners.devices#DeviceIdentifier) encapsulates hardware IDs to identify a\nmanufactured device. This document explains how to work with identifiers in the\nzero-touch enrollment API.\n\nA `DeviceIdentifier` combines hardware metadata or IDs required to uniquely\nidentify a device.\n\nYour organization includes the device identifier values when uploading device\ndata through the portal or calling the API.\n| **Important:** a `DeviceIdentifier` represents a hardware device. It shouldn't be confused with `deviceId`, which represents a record in the API.\n\nRequired fields\n---------------\n\n### Android devices\n\nZero-touch enrollment typically identifies devices by the IMEI (or MEID)\ncellular modem IDs. To support devices without cellular modems, such as\ntablets, you can also identify devices using a different set of fields. The\nfollowing table shows the fields you can use for each type of device:\n\n| Identifier | Cellular | Wi‑Fi only | Notes |\n|----------------|----------|------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `hardware_id` | | | This field must be an IMEI or MEID number. Zero-touch enrollment validates the format of IMEI values when you pass them in API arguments. |\n| `hardware_id2` | | | This field must be a second IMEI or MEID number. Zero-touch enrollment validates the format of IMEI values when you pass them in API arguments. For information on devices with more than one cellular modem, see [Dual-SIM devices](#dual-sim). |\n| `serialNumber` | | | The manufacturer's serial number for the device. The serial number is case sensitive and is the same value that's returned from [`Build.getSerial()`](https://developer.android.com/reference/android/os/Build.html#getSerial()). |\n| `model` | | | The device model value must match the device's built-in value returned from [`Build.MODEL`](https://developer.android.com/reference/android/os/Build.html#MODEL). See the [model names](/zero-touch/resources/manufacturer-names#model-names) reference for a list of allowed values for each manufacturer. |\n| `manufacturer` | | | The `manufacturer` field value must match the device's built-in value returned from [`Build.MANUFACTURER`](https://developer.android.com/reference/android/os/Build.html#MANUFACTURER). See the [manufacturer names](/zero-touch/resources/manufacturer-names) reference for further information. |\n\nIf registering serial number you must also register manufacturer and model to\nensure zero-touch is able to detect the device.\n\n#### Dual-SIM devices\n\nA dual-SIM device includes two discrete modems and has two IMEI numbers. If\nregistering just one IMEI, prefer the numerically lowest IMEI number as\nzero-touch enrollment works more reliably with the lowest IMEI. To increase\nreliability you can additionally register the other IMEI, or the serial number,\nmanufacturer and model.\n\nTo display the second IMEI in the zero-touch portal:\n\n1. Go to the **Devices** tab.\n2. On the upper right corner, beside the **Add Device** button, click the three dots more_vert.\n3. Select **Customize table**.\n4. Select the checkbox for **IMEI2**.\n5. Click **Save**.\n\n### ChromeOS devices\n\nFor ChromeOS devices the set of required identifiers is the same for cellular\nand Wi-Fi only devices:\n\n| Identifier | Notes |\n|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `serialNumber` | The manufacturer's serial number for the device. |\n| `model` | The device model value must match the device's built-in value. See the [list of ChromeOS model values](/zero-touch/resources/chromeos-models) for reference. |\n| `chromeOsAttestedDeviceId` | The Attested Device ID. See the [list of compatible ChromeOS devices](https://support.google.com/chrome/a/answer/10130175?#identify_compatible&zippy=%2Cidentify-compatible-chrome-devices) for reference. |\n\nRefer to a device\n-----------------\n\nUse a `DeviceIdentifier` when finding or claiming devices. You need to include\nthe required fields specified for the type of device.\n\nThe following snippet shows an IMEI number used to search for a specific device\nby calling [`partners.devices.findByIdentifier`](/zero-touch/reference/reseller/rest/v1/partners.devices/findByIdentifier): \n\n### Java\n\n```java\n// Create a DeviceIdentifier.\nDeviceIdentifier deviceIdentifier = new DeviceIdentifier();\ndeviceIdentifier.setImei(\"123456789012347\");\n\n// Perform the search using the zero-touch enrollment API.\nFindDevicesByDeviceIdentifierRequest body = new FindDevicesByDeviceIdentifierRequest();\nbody.setLimit(1L);\nbody.setDeviceIdentifier(deviceIdentifier);\n\nFindDevicesByDeviceIdentifierResponse response = service\n .partners()\n .devices()\n .findByIdentifier(PARTNER_ID, body)\n .execute();\n```\n\n### .NET\n\n```c#\n// Create a DeviceIdentifier.\nvar deviceIdentifier = new DeviceIdentifier\n{\n Imei = \"123456789012347\"\n};\n\n// Perform the search using the zero-touch enrollment API.\nvar body = new FindDevicesByDeviceIdentifierRequest\n{\n Limit = 1,\n DeviceIdentifier = deviceIdentifier\n};\nvar response = service.Partners.Devices.FindByIdentifier(body, PartnerId).Execute();\n```\n\n### Python\n\n```python\n# Create a DeviceIdentifier.\ndevice_identifier = {'imei':'123456789012347'}\n\n# Perform the search using the zero-touch enrollment API.\nresponse = service.partners().devices().findByIdentifier(\n partnerId=PARTNER_ID, body={'deviceIdentifier':device_identifier, \\\n 'limit':1}).execute()\n```\n\nThe following snippet shows how to create a device identifier with a serial\nnumber: \n\n### Java\n\n```java\n// Create a device identifier to find a Wi-Fi-only device.\nDeviceIdentifier deviceIdentifier = new DeviceIdentifier();\ndeviceIdentifier.setManufacturer(\"Honeywell\");\ndeviceIdentifier.setModel(\"VM1A\");\ndeviceIdentifier.setSerialNumber(\"ABcd1235678\");\n```\n\n### .NET\n\n```c#\n// Create a device identifier to find a Wi-Fi-only device.\nvar deviceIdentifier = new DeviceIdentifier\n{\n Manufacturer = \"Honeywell\",\n Model = \"VM1A\",\n SerialNumber = \"ABcd1235678\"\n};\n```\n\n### Python\n\n```python\n# Create a device identifier to find a Wi-Fi-only device.\ndevice_identifier = {'manufacturer':'Honeywell', \\\n 'model':'VM1A', 'serialNumber':'ABcd1235678'}\n```\n\nLearn more\n----------\n\n- To learn more about hardware identifiers, see the [API reference documentation](/zero-touch/reference/reseller/rest/v1/partners.devices#DeviceIdentifier) for `DeviceIdentifier`.\n- To see a list of allowed manufacturer names and device models, review the [manufacturer names](/zero-touch/resources/manufacturer-names) reference.\n- To see a list of compatible ChromeOS devices, see the [ChromeOs Help Center](https://support.google.com/chrome/a/answer/10130175?#identify_compatible&zippy=%2Cidentify-compatible-chrome-devices)"]]