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")
    }