La API de Hub Activation te permite descubrir y activar de forma programática un concentrador de Google Home. Es especialmente útil cuando el usuario no tiene otra forma de activar un concentrador, como en el caso de un concentrador que no tiene pantalla.
Con la API de Hub Activation, puedes compilar una app que pueda descubrir y activar concentradores. Para hacer lo siguiente:
Obtén una referencia a
HubManagementTraiten la estructura:val hubManagementTrait = hubManagementTraitFlow.firstOrNull { it.metadata.sourceConnectivity?.connectivityState == ConnectivityState.ONLINE } if (hubManagementTrait == null) { errorsEmitter.emit(HomeException.notFound("HubManagement trait isn't online")) }Identifica los dispositivos compatibles con concentradores en la red Wi-Fi:
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(), )Activa un dispositivo compatible con la unidad central:
try { val unused = hubManagementTrait.activateHub(hub) } catch (e: Exception) { Log.d("Hub Activation", "Error activating hub $e") }