Android-এ Hub Activation API

Hub অ্যাক্টিভেশন 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. ওয়াই-ফাই নেটওয়ার্কে হাব-উপযোগী যেকোনও ডিভাইস শনাক্ত করুন:

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