Interfejs Hub Activation API umożliwia automatyczne wykrywanie i aktywowanie centrum Google Home. Jest to szczególnie przydatne, gdy użytkownik nie ma innego sposobu na aktywowanie centrum, np. gdy nie ma ono ekranu.
Za pomocą interfejsu Hub Activation API możesz utworzyć aplikację, która może wykrywać i aktywować centra. Aby to zrobić:
Uzyskaj odniesienie do
HubManagementTraitw strukturze:val hubManagementTrait = hubManagementTraitFlow.firstOrNull { it.metadata.sourceConnectivity?.connectivityState == ConnectivityState.ONLINE } if (hubManagementTrait == null) { errorsEmitter.emit(HomeException.notFound("HubManagement trait isn't online")) }Zidentyfikuj wszystkie urządzenia w sieci Wi-Fi, które mogą działać jako centrum:
try { val unused = hubManagementTrait.discoverAvailableHubs() } catch (e: Exception) { Log.d(TAG_HUB_DISCOVERY, "Error discovering hubs $e") errorsEmitter.emit(e) } val hubManagementTraitFlow = structureFlow.flatMapLatest { it.trait(HubManagement) } val discoveredHubs = hubManagementTraitFlow .map { it.discoveredHubsList } .handleErrors() .flowOn(ioDispatcher) .stateIn( scope = CoroutineScope(viewModelScope.coroutineContext + ioDispatcher), started = SharingStarted.WhileSubscribed(), listOf(), )Aktywuj urządzenie z funkcją centrum:
try { val unused = hubManagementTrait.activateHub(hub) } catch (e: Exception) { Log.d("Hub Activation", "Error activating hub $e") }