Hub Activation API على Android

تتيح لك واجهة برمجة التطبيقات Hub Activation API اكتشاف وتفعيل مركز Google Home بشكل آلي. وهو مفيد بشكل خاص عندما لا يتوفّر للمستخدم أي طريقة أخرى لتفعيل مركز، كما هو الحال مع مركز لا يتضمّن شاشة.

استخدام 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. تحديد أي أجهزة متوافقة مع المحور على شبكة 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")
    }