Usunięcie urządzenia wiąże się z jego wycofaniem ze struktury. Użytkownik może to zrobić za pomocą Google Home app (GHA), a aplikacja może programowo wycofać inteligentne urządzenie domowe. Istnieją ograniczenia dotyczące tego, które urządzenia można usunąć. Usunięcie urządzenia może też wpłynąć na strukturę i wrażenia użytkowników związane z Twoją aplikacją.
Co możesz usunąć
Za pomocą interfejsów Home API możesz programowo usunąć te urządzenia:
- Matter urządzenia, do których Twoja aplikacja ma uprawnienia.
- Matter mostki, pod warunkiem że Twoja aplikacja ma dostęp do wszystkich urządzeń połączonych przez mostek. Usunięcie mostka powoduje usunięcie wszystkich Matter połączonych z nim urządzeń.
Czego nie możesz usunąć
Za pomocą interfejsów Home API nie można programowo usunąć tych urządzeń:
- Matter urządzenia, do których Twoja aplikacja nie ma uprawnień użytkownika.
- Pojedyncze urządzenia połączone za mostkiem Matter.
- Cloud-to-cloud połączone urządzenia.
- Urządzenia z podwójną ścieżką (urządzenia, które implementują zarówno Matter jak i Cloud-to-cloud).
Ważne kwestie, które należy wziąć pod uwagę przed usunięciem urządzenia
Gdy Twoja aplikacja usunie urządzenie, zostanie ono usunięte z całej struktury, co wpłynie na wszystkich użytkowników i wszystkie aplikacje, w tym na GHA. W zależności od typu urządzenia wycofanie go może mieć dodatkowe skutki uboczne:
- Urządzenia implementujące wiele typów urządzeń: jeśli urządzenie ma wiele funkcji – na przykład inteligentne oświetlenie, które działa też jako hub – jego usunięcie spowoduje też usunięcie wszystkich powiązanych urządzeń. Aplikacja powinna informować użytkownika, jeśli usunięcie urządzenia wpłynie na wiele jego funkcji.
- Historia urządzenia: usunięcie urządzenia może spowodować usunięcie jego historii.
- Powierzchnie współdzielone: zachowaj ostrożność podczas usuwania urządzeń na powierzchniach współdzielonych, ponieważ może to mieć niepożądane konsekwencje dla innych użytkowników.
- Uwierzytelnianie: usuwanie urządzenia powinno być wykonywane tylko na uwierzytelnionych powierzchniach, takich jak telefon komórkowy, a nie na nieautoryzowanych urządzeniach, takich jak telewizory. Takie działanie narusza zasady dla deweloperów Google Home.
Usuwanie urządzenia
Sprawdzanie, czy urządzenie można usunąć, jest kosztowne i powinno być wykonywane tylko w razie potrzeby. Aby sprawdzić, czy urządzenie można usunąć, użyj tego polecenia:
swift
let eligibility = try await device.decommissionEligibility
Urządzenia Matter
Urządzenie Matter możesz usunąć programowo, jeśli urządzenie nie jest połączone za mostkiem Matter.
Aby usunąć urządzenie Matter, wywołaj
decommission() na nim:
swift
let decommissionedDeviceIDs = try await device.decommission()
Jeśli wywołanie nie spowoduje błędu, oznacza to, że się powiodło.
Możesz sprawdzić, czy identyfikator urządzenia znajduje się wśród identyfikatorów zwróconych przez funkcję decommission():
swift
do {
let decommissionedDeviceIDs = try await device.decommission()
print("The following devices were decommissioned: \(decommissionedDeviceIDs)")
} catch {
print("An error occurred: \(error)")
}
Urządzenia inne niż Matter
Urządzeń innych niż Matter nie można usunąć programowo. Aby usunąć urządzenie inne niż Matter , możesz wysłać prośbę o synchronizację (patrz Prośba o synchronizację) lub usunąć integrację Cloud-to-cloud (patrz Usuwanie wdrożonej integracji chmura-chmura).
Jeśli wywołasz funkcję decommission() na urządzeniu innym niż Matter zostanie zgłoszony błąd HomeError.
Po usunięciu urządzenia innego niż Matter sprawdź, czy urządzenie jest obecne , aby potwierdzić, że zostało usunięte:
swift
guard try await !self.context.devices().list().contains(where: { $0.id == deviceID })
else {
// The device still exists in Home APIs
}