Việc xoá một thiết bị có nghĩa là bạn sẽ huỷ kích hoạt thiết bị đó khỏi 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 hoạt động một thiết bị nhà thông minh theo cách có lập trình. Có một số hạn chế về những thiết bị 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 của ứng dụng.
Nội dung bạn có thể xoá
Bạn có thể xoá các thiết bị sau theo cách lập trình thông qua Home API:
- Matter thiết bị mà ứng dụng của bạn có quyền truy cập.
- Matter, 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. Khi bạn xoá cầu nối, mọi thiết bị Matter được kết nối với cầu nối đó cũng sẽ bị xoá.
- Các thiết bị camera và chuông cửa được hỗ trợ, bao gồm cả camera và chuông cửa Google Nest có khả năng tương thích với Matter, cũng như camera của đối tác tương thích. Để biết thông tin chi tiết về các kiểu máy được hỗ trợ và không được hỗ trợ, hãy xem bài viết Camera và chuông cửa.
Nội dung 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 Home API:
- Matter thiết bị mà ứng dụng của bạn thiếu quyền của người dùng.
- Các thiết bị riêng lẻ được kết nối phía sau cầu Matter.
- Cloud-to-cloud thiết bị đã liên kết.
- Thiết bị có hai đường dẫn không phải camera (thiết bị triển khai cả Matter và Cloud-to-cloud, ngoài camera và chuông cửa được hỗ trợ).
- Các thiết bị camera và chuông cửa không được hỗ trợ, bao gồm cả màn hình thông minh có camera tích hợp và camera cũ không hỗ trợ Matter (xem phần Camera và chuông cửa).
Những điểm quan trọng cần cân nhắc trước khi xoá 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, kể cả GHA. Tuỳ thuộc vào loại thiết bị, việc ngừng hoạt động một thiết bị có thể gây ra các tác dụng phụ khác:
- Nếu một thiết bị cung cấp nhiều chức năng, chẳng hạn như đè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 có nhiều chức năng của thiết bị bị ảnh hưởng.
- Khi bạn xoá một camera hoặc chuông cửa, tất cả nhật ký quay video 24/7, nhật ký quay video sự kiện, đoạn video đã quay và dữ liệu trong thư viện khuôn mặt quen thuộc liên kết với camera đó sẽ bị xoá vĩnh viễn trên toàn bộ cấu trúc nhà.
- Việc ngừng sử dụng camera không huỷ các gói thuê bao đang hoạt động, chẳng hạn như Google Home Premium hoặc dịch vụ giám sát của đối tác. Gói thuê bao sẽ tiếp tục cho đến khi người dùng huỷ.
- Khi ngừng hoạt động một camera hoặc chuông cửa, nền tảng Home API sẽ hiển thị cho người dùng một màn hình xác nhận do Google quản lý, giải thích rằng nhật ký quay video sẽ bị xoá vĩnh viễn. Người dùng phải xác nhận lời nhắc này trước khi thiết bị bị xoá.
- Hãy thận trọng khi xoá thiết bị trên nơi làm việc chung, vì thao tác này có thể gây ra hậu quả ngoài ý muốn cho người khác.
- Bạn chỉ được xoá thiết bị trên các nền tảng đã xác thực, chẳng hạn như điện thoại di động, chứ không được xoá 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á thiết bị
Việc kiểm tra xem một thiết bị có đủ điều kiện để được xoá hay không tốn nhiều chi phí 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 để xoá hay không, hãy dùng lệnh sau:
val eligibility = device.checkDecommissionEligibility() if (eligibility is DecommissionEligibility.Ineligible) { println("The device cannot be decommissioned.") } else if (eligibility is DecommissionEligibility.EligibleWithSideEffects) { println("The device can be decommissioned but there will be side effects on other devices.") } else if (eligibility is DecommissionEligibility.Eligible) { println("The device can be decommissioned.") }
Thiết bị theo chuẩn Matter
Bạn có thể xoá một thiết bị Matter theo cách lập trình nếu thiết bị đó không nằm sau cầu nối Matter.
Để xoá một thiết bị Matter, hãy gọi decommissionDevice() trên thiết bị đó:
val decommissionedDeviceIds = device.decommissionDevice()
Nếu lệnh gọi không báo lỗi, tức là 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ố những mã nhận dạng do decommissionDevice() trả về hay không:
if (decommissionedDeviceIds.contains(deviceId)) { println("Decommission successful!") } else { println("Decommission failed!") }
Camera và chuông cửa
Bạn có thể xoá các camera và chuông cửa được hỗ trợ theo phương thức lập trình bằng cách sử dụng decommissionDevice().
Các mô hình được hỗ trợ bao gồm:
- Google Nest Cam (indoor, wired)
- Google Nest Cam (outdoor or indoor, battery)
- Google Nest Cam with floodlight
- Google Nest Doorbell (battery)
- Google Nest Doorbell (wired)
- Camera và chuông cửa của đối tác tương thích (chẳng hạn như Walmart onn.)
Bạn không thể ngừng hoạt động các thiết bị camera và chuông cửa sau đây theo cách lập trình:
- Màn hình thông minh có camera tích hợp, chẳng hạn như Google Nest Hub Max.
- Các camera và chuông cửa Nest cũ không hỗ trợ Matter và chỉ kết nối thông qua các dịch vụ đám mây, chẳng hạn như Nest Cam Indoor (thế hệ thứ 1), Nest Cam Outdoor (thế hệ thứ 1), Nest Cam IQ và Nest Doorbell (có dây, thế hệ thứ 1).
- Camera và chuông cửa của bên thứ ba được liên kết Cloud-to-cloud.
Khi ứng dụng của bạn bắt đầu ngừng hoạt động cho một camera hoặc chuông cửa, nền tảng sẽ hiển thị cho người dùng một màn hình xác nhận do Google quản lý. Màn hình này thông báo cho người dùng rằng thao tác xoá camera sẽ xoá vĩnh viễn toàn bộ nhật ký quay video 24/7, nhật ký sự kiện, đoạn video đã quay và dữ liệu thư viện khuôn mặt quen thuộc được liên kết với thiết bị trên toàn bộ cấu trúc.
Nếu người dùng đóng hoặc huỷ màn hình xác nhận,decommissionDevice() sẽ gửi một HomeException.
Việc ngừng sử dụng camera không huỷ các gói thuê bao camera đang hoạt động (chẳng hạn như Google Home Premium). Người dùng phải huỷ riêng từng gói thuê bao thông qua nhà cung cấp gói thuê bao.
kotlin
try {
val decommissionedDeviceIds = device.decommissionDevice()
if (decommissionedDeviceIds.contains(device.id)) {
// Camera was successfully decommissioned
}
} catch (e: HomeException) {
// Handle cancellation or decommission error
}
Thiết bị không theo chuẩn Matter
Bạn không thể xoá các thiết bị không phải Matter (ngoài camera và chuông cửa được hỗ trợ) theo cách lập trình. Để xoá các thiết bị không phải Matter khác, bạn có thể đưa ra yêu cầu Đồng bộ hoá (xem phần Yêu cầu đồng bộ hoá) hoặc xoá chế độ tích hợp Cloud-to-cloud (xem phần Xoá chế độ tích hợp từ đám mây đến đám mây đã ra mắt).
Nếu bạn gọi decommissionDevice() trên một thiết bị không được hỗ trợ không phải Matter, thì HomeException sẽ được tạo.
Sau khi xoá một thiết bị không phải Matter, hãy kiểm tra xem thiết bị đó có còn xuất hiện hay không để xác minh rằng bạn đã xoá thành công:
var removedDevice: HomeDevice? = null runBlockingCustom { try { removedDevice = homeManager.devices().get(deviceId) } catch (exception: Exception) { println("removal successful!") } } if (removedDevice != null) { println("removal failed!") }