میانای برنامه کاربردی فعال‌سازی Hub در Android

Hub Activation API به شما امکان می‌دهد به‌طور برنامه‌نویسی‌شده کانون Google Home را کاوش و فعال کنید. این ویژگی به‌ویژه زمانی مفید است که کاربر راه دیگری برای فعال کردن هاب ندارد، مثلاً در مواردی که هاب فاقد صفحه‌نمایش است.

بااستفاده از 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. دستگاه‌های دارای قابلیت هاب را در شبکه 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(),
        )
    
  3. فعال کردن دستگاهی با قابلیت مرکز کنترل:

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