Android पर Hub Activation API

Hub Activation API की मदद से, Google Home hub को प्रोग्राम के हिसाब से खोजा और चालू किया जा सकता है. यह सुविधा खास तौर पर तब काम आती है, जब उपयोगकर्ता के पास हब को चालू करने का कोई और तरीका न हो. जैसे, स्क्रीन वाले हब के मामले में.

Hub Activation API का इस्तेमाल करना

Hub Activation API का इस्तेमाल करके, ऐसा ऐप्लिकेशन बनाया जा सकता है जो हब ढूंढ सके और उन्हें चालू कर सके.

  1. स्ट्रक्चर में HubManagementTrait का रेफ़रंस पाएं:

    val hubManagementTrait =
      hubManagementTraitFlow.firstOrNull {
        it.metadata.sourceConnectivity?.connectivityState == ConnectivityState.ONLINE
      }
    if (hubManagementTrait == null) {
      errorsEmitter.emit(HomeException.notFound("HubManagement trait isn't online"))
    }
    
  2. वाई-फ़ाई नेटवर्क पर, हब के तौर पर काम करने वाले डिवाइसों की पहचान करें:

    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(),
        )
    
  3. हब के तौर पर काम करने वाले डिवाइस को चालू करें:

    try {
      val unused = hubManagementTrait.activateHub(hub)
    } catch (e: Exception) {
      Log.d("Hub Activation", "Error activating hub $e")
    }