Mit der Hub Activation API kannst du programmatisch einen Google Home-Hub ermitteln und aktivieren. Das ist besonders nützlich, wenn der Nutzer keine andere Möglichkeit hat, einen Hub zu aktivieren, z. B. bei einem Hub ohne Display.
Hub Activation API verwenden
Mit der Hub Activation API können Sie eine App entwickeln, die Hubs erkennen und aktivieren kann.
Rufen Sie einen Verweis auf
HubManagementTraitin der Struktur ab:val hubManagementTrait = hubManagementTraitFlow.firstOrNull { it.metadata.sourceConnectivity?.connectivityState == ConnectivityState.ONLINE } if (hubManagementTrait == null) { errorsEmitter.emit(HomeException.notFound("HubManagement trait isn't online")) }Hub-kompatible Geräte im WLAN identifizieren:
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(), )So aktivierst du ein hubfähiges Gerät:
try { val unused = hubManagementTrait.activateHub(hub) } catch (e: Exception) { Log.d("Hub Activation", "Error activating hub $e") }