Xoá thiết bị

Việc xoá một thiết bị liên quan đến việc ngừng sử dụng thiết bị đó trong cấu trúc. Người dùng có thể thực hiện việc này bằng Google Home app (GHA), và ứng dụng có thể ngừng sử dụng thiết bị nhà thông minh theo phương thức lập trình. Có những hạn chế về việc thiết bị nào có thể bị xoá. Ngoài ra, việc xoá một thiết bị có thể ảnh hưởng đến cấu trúc và trải nghiệm người dùng đối với ứng dụng của bạn.

Những gì bạn có thể xoá

Bạn có thể xoá các thiết bị sau theo phương thức lập trình thông qua API Home:

  • Thiết bị Matter mà ứng dụng của bạn có quyền.
  • Matter cầu nối, miễn là ứng dụng của bạn có quyền truy cập vào tất cả các thiết bị được kết nối thông qua cầu nối. Việc xoá cầu nối sẽ xoá tất cả các thiết bị Matter được kết nối với cầu nối đó.

Những gì bạn không thể xoá

Bạn không thể xoá các thiết bị sau theo phương thức lập trình thông qua API Home:

  • Thiết bị Matter mà ứng dụng của bạn không có quyền của người dùng.
  • Các thiết bị riêng lẻ được kết nối sau cầu nối Matter.
  • Cloud-to-cloud thiết bị được liên kết.
  • Các thiết bị có đường dẫn kép (các thiết bị triển khai cả MatterCloud-to-cloud).

Những điều quan trọng cần cân nhắc trước khi xoá một thiết bị

Khi ứng dụng của bạn xoá một thiết bị, thiết bị đó sẽ bị xoá khỏi toàn bộ cấu trúc, ảnh hưởng đến tất cả người dùng và tất cả ứng dụng, bao gồm cả GHA. Tuỳ thuộc vào loại thiết bị, có thể có thêm các tác dụng phụ khi ngừng sử dụng thiết bị:

  • Các thiết bị triển khai nhiều loại thiết bị: Nếu một thiết bị có nhiều chức năng (ví dụ: đèn thông minh cũng hoạt động như một trung tâm), thì việc xoá thiết bị đó cũng sẽ xoá tất cả các thiết bị được liên kết. Ứng dụng phải thông báo cho người dùng nếu nhiều chức năng của thiết bị sẽ bị ảnh hưởng.
  • Nhật ký thiết bị: Việc xoá một thiết bị có thể dẫn đến việc xoá nhật ký của thiết bị đó.
  • Bề mặt dùng chung: Hãy thận trọng khi xoá các thiết bị trên bề mặt dùng chung, vì điều này có thể gây ra hậu quả không mong muốn cho người khác.
  • Xác thực: Bạn chỉ nên xoá thiết bị trên các bề mặt đã xác thực, chẳng hạn như điện thoại di động, chứ không phải trên các thiết bị chưa xác thực như TV. Việc này vi phạm Chính sách dành cho nhà phát triển Google Home.

Xoá một thiết bị

Việc kiểm tra xem một thiết bị có đủ điều kiện để bị xoá hay không tốn kém và chỉ nên thực hiện khi cần thiết. Để kiểm tra xem một thiết bị có đủ điều kiện để bị xoá hay không, hãy sử dụng lệnh sau:

swift let eligibility = try await device.decommissionEligibility

Thiết bị theo chuẩn Matter

Bạn có thể xoá một thiết bị Matter theo phương thức lập trình nếu thiết bị đó không nằm sau cầu nối Matter.

Để xoá một Matter thiết bị, hãy gọi decommission() trên thiết bị đó:

swift let decommissionedDeviceIDs = try await device.decommission()

Nếu lệnh gọi không báo lỗi, thì lệnh gọi đó đã thành công.

Bạn có thể kiểm tra để xem mã nhận dạng của thiết bị có nằm trong số các mã nhận dạng do decommission() trả về hay không:

swift do { let decommissionedDeviceIDs = try await device.decommission() print("The following devices were decommissioned: \(decommissionedDeviceIDs)") } catch { print("An error occurred: \(error)") }

Thiết bị không theo chuẩn Matter

Bạn không thể xoá các thiết bị không theo chuẩn Matter theo phương thức lập trình. Để xoá một thiết bị không theo chuẩn Matter bạn có thể gửi yêu cầu Đồng bộ hoá (xem phần Yêu cầu đồng bộ hoá), hoặc xoá tính năng tích hợp Cloud-to-cloud (xem phần Xoá tính năng tích hợp Đám mây đến đám mây đã ra mắt).

Nếu bạn gọi decommission() trên một thiết bị không theo chuẩn Matter, thì HomeError sẽ được gửi.

Sau khi xoá một thiết bị không theo chuẩn Matter, hãy kiểm tra xem thiết bị đó có còn tồn tại hay không để xác minh rằng bạn đã xoá thành công:

swift guard try await !self.context.devices().list().contains(where: { $0.id == deviceID }) else { // The device still exists in Home APIs }