La API de Hub Activation te permite descubrir y activar de forma programática un dispositivo central de Google Home. Es especialmente útil cuando el usuario no tiene otra forma de activar un centro, como en el caso de un centro 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 la función de concentrador 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") }