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ć z użytku 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 sposób korzystania z aplikacji przez użytkowników.
Co możesz usunąć
Za pomocą interfejsów Home API możesz programowo usuwać te urządzenia:
- Matter urządzeń, na których Twoja aplikacja ma uprawnienia.
- Matter, pod warunkiem że aplikacja ma dostęp do wszystkich urządzeń połączonych za pomocą mostka. Usunięcie mostka spowoduje usunięcie wszystkich urządzeń Matter z nim połączonych.
- Obsługiwane kamery i dzwonki, w tym urządzenia Google Nest zgodne z Matter oraz kompatybilne kamery innych firm. Szczegółowe informacje o obsługiwanych i nieobsługiwanych modelach znajdziesz w sekcji Kamery i dzwonki.
Czego nie można usunąć
Tych urządzeń nie można usunąć automatycznie za pomocą interfejsów Home API:
- Matter urządzeń, na których Twoja aplikacja nie ma uprawnień użytkownika.
- Poszczególne urządzenia połączone za pomocą mostka Matter.
- Liczba połączonych urządzeń: Cloud-to-cloud.
- Urządzenia z dwoma ścieżkami, które nie są kamerami (urządzenia, które implementują zarówno Matter, jak i Cloud-to-cloud, inne niż obsługiwane kamery i dzwonki).
- Nieobsługiwane kamery i dzwonki, w tym inteligentne wyświetlacze z wbudowanymi kamerami i starsze kamery, które nie obsługują Matter (patrz Kamery i dzwonki).
Ważne kwestie, które należy wziąć pod uwagę przed usunięciem urządzenia
Gdy 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 GHA. W zależności od typu urządzenia mogą wystąpić dodatkowe skutki uboczne wycofania urządzenia z użytku:
- Jeśli urządzenie ma wiele funkcji, np. inteligentne oświetlenie, które działa też jako centrala, usunięcie go spowoduje usunięcie wszystkich powiązanych z nim urządzeń. Aplikacja powinna informować użytkownika, jeśli problem dotyczy wielu funkcji urządzenia.
- Usunięcie kamery lub dzwonka spowoduje trwałe usunięcie całej historii całodobowych nagrań wideo, historii nagrań zdarzeń, nagranych klipów i danych biblioteki znanych twarzy powiązanych z tą kamerą w całym domu.
- Wycofanie kamery nie powoduje anulowania aktywnych subskrypcji, takich jak Google Home Premium czy usługi monitorowania partnera. Subskrypcje są aktywne do momentu anulowania przez użytkownika.
- Podczas wycofywania kamery lub dzwonka platforma interfejsów Home API wyświetla użytkownikowi zarządzany przez Google ekran potwierdzenia z informacją, że historia nagrań wideo zostanie trwale usunięta. Użytkownik musi potwierdzić ten komunikat, zanim urządzenie zostanie usunięte.
- Zachowaj ostrożność podczas usuwania urządzeń ze wspólnych miejsc, ponieważ może to mieć niepożądane konsekwencje dla innych osób.
- Usuwanie urządzeń musi być przeprowadzane tylko na uwierzytelnionych platformach, takich jak telefony komórkowe, a nie na nieuwierzytelnionych urządzeniach, np. telewizorach. Jest to naruszenie zasad dla deweloperów Google Home.
Usuwanie urządzenia
Sprawdzanie, czy urządzenie kwalifikuje się do usunięcia, jest kosztowne i należy je przeprowadzać tylko w razie potrzeby. Aby sprawdzić, czy urządzenie można usunąć, użyj tego polecenia:
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.") }
Urządzenia Matter
Urządzenie Matter możesz usunąć programowo, jeśli nie jest ono połączone z mostkiem Matter.
Aby usunąć urządzenie Matter, zadzwoń na nie:decommissionDevice()
val decommissionedDeviceIds = device.decommissionDevice()
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:decommissionDevice()
if (decommissionedDeviceIds.contains(deviceId)) { println("Decommission successful!") } else { println("Decommission failed!") }
Kamery i dzwonki
Obsługiwane kamery i dzwonki możesz usuwać programowo za pomocą funkcji
decommissionDevice()
.
Obsługiwane modele:
- 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)
- Zgodne kamery i dzwonki partnerów (np. Walmart onn.)
Nie można wycofać z użytku tych kamer i dzwonków:
- Inteligentne wyświetlacze z wbudowanymi kamerami, np. Google Nest Hub Max.
- Starsze kamery i dzwonki Nest, które nie obsługują Matter i łączą się tylko za pomocą usług w chmurze, np. kamera wewnętrzna Nest Cam Indoor (1 generacji), kamera zewnętrzna Nest Cam Outdoor (1 generacji), Nest Cam IQ i urządzenie Nest Doorbell (zasilane z sieci, 1 generacji).
- Kamery i dzwonki innych firmCloud-to-cloud.
Gdy aplikacja zainicjuje wycofanie kamery lub dzwonka, platforma wyświetli użytkownikowi ekran potwierdzenia zarządzany przez Google. Na tym ekranie informujemy użytkownika, że usunięcie kamery spowoduje trwałe usunięcie wszystkich nagrań wideo z historii całodobowych nagrań wideo, historii zdarzeń, klipów i danych z biblioteki znanych twarzy powiązanych z urządzeniem w całej strukturze.
Jeśli użytkownik zamknie lub anuluje ekran potwierdzenia, funkcjadecommissionDevice() zgłosi wyjątek HomeException.
Wycofanie kamery nie powoduje anulowania aktywnych subskrypcji kamery (np.Google Home Premium). Użytkownicy muszą anulować subskrypcje oddzielnie za pomocą dostawcy subskrypcji.
kotlin
try {
val decommissionedDeviceIds = device.decommissionDevice()
if (decommissionedDeviceIds.contains(device.id)) {
// Camera was successfully decommissioned
}
} catch (e: HomeException) {
// Handle cancellation or decommission error
}
Urządzenia inne niż Matter
Urządzeń innych niż Matter (z wyjątkiem obsługiwanych kamer i dzwonków do drzwi) nie można usunąć programowo. Aby usunąć inne urządzenia inne niż Matter, możesz wysłać prośbę o synchronizację (patrz Wysyłanie prośby o synchronizację) lub usunąć integrację Cloud-to-cloud (patrz Usuwanie uruchomionej integracji typu chmura-chmura).
Jeśli wywołasz funkcję decommissionDevice()
na nieobsługiwanym urządzeniu, które nie jest Matter, zostanie zgłoszony wyjątek HomeException.
Po usunięciu urządzenia innego niż Matter sprawdź, czy urządzenie jest nadal widoczne, aby potwierdzić, że zostało usunięte:
var removedDevice: HomeDevice? = null runBlockingCustom { try { removedDevice = homeManager.devices().get(deviceId) } catch (exception: Exception) { println("removal successful!") } } if (removedDevice != null) { println("removal failed!") }