Mit der Hub Activation API kannst du einen Google Home-Hub programmatisch finden und aktivieren. Das ist besonders nützlich, wenn der Nutzer keine andere Möglichkeit hat, einen Hub zu aktivieren, z. B. wenn der Hub kein Display hat.
Mit der Hub Activation API können Sie eine App erstellen, die Hubs erkennen und aktivieren kann. Gehen Sie dazu so vor:
Rufen Sie einen Verweis auf die
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")) }Identifiziere alle hub-fähigen Geräte im WLAN:
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") }