Wi-Fi STA/STA Eşzamanlılığı

Android 12, cihazların aynı anda iki Wi-Fi ağına bağlanmasına izin veren Wi-Fi STA/STA eşzamanlılığını sunar. Bu isteğe bağlı özellik aşağıdaki işlevleri etkinleştirir.

  • Make-öncesi-mola: Cihaz varolan bağlantıyı kesmeden önce yeni Wi-Fi ağına bağlantı kurar. Bu, Wi-Fi ağları arasında geçiş yaparken daha yumuşak geçişler sağlar
  • Eşzamanlı Yalnızca yerel ve internet bağlantısı: cihazın birincil internet sağlayan bağlantıyı bozmadan yerel salt ağa aygıt bağlanır.
  • Eşzamanlı kısıtlı ve internet bağlantısı: cihazın birincil internet sağlayan bağlantı aksatmadan (sadece belirli ayrıcalıklı uygulamaların kullanabileceği) Kısıtlı bir ağa aygıt bağlanır.

Bu sayfada, bu özellik etkinleştirildiğinde cihaz davranışı ve cihaz üreticileri ve satıcıları için uygulama ayrıntıları açıklanmaktadır.

uygulama

Wi-Fi STA/STA eşzamanlılığını uygulamak için cihazların aşağıdakileri desteklemesi gerekir:

  • Wi-Fi yongası veya bellenimi iki eşzamanlı STA bağlantısını desteklemelidir. Ürün yazılımı, her iki bağlantı için tüm kanal ve bant kombinasyonlarını desteklemelidir. Performans sorunlarını önlemek için 2x2+2x2 DBS özellikli Wi-Fi yongası kullanmanızı öneririz.

  • Cihaz aşağıdaki API'leri desteklemelidir satıcı HAL sürüm 1.5

    • IWifiChip.setMultiStaPrimaryConnection()
    • IWifiChip.setMultiStaUseCase()
  • HAL Kablosuz arabirim kombinasyonu gibi bir SPECIFACTION biçimi kullanarak maruz iki eşzamanlı STA arayüzleri sahip olmalıdır [{STA} <= 2, ...] . Daha fazla bilgi için, bkz Kablosuz çoklu arayüz eşzamanlılık .

Bu ön koşullar karşılanırsa, aşağıdakileri yaparak Wi-Fi STA/STA eşzamanlılığını uygulayın:

  1. Tek tek kullanarak bir veya daha fazla işlevi etkinleştirin çalışma zamanı kaynak bindirmeleri (varsayılan olarak devre dışıdır).

    • Make-öncesi-mola: config_wifiMultiStaNetworkSwitchingMakeBeforeBreakEnabled
    • Eşzamanlı Yalnızca yerel ve internet bağlantısı: config_wifiMultiStaLocalOnlyConcurrencyEnabled
    • Eşzamanlı kısıtlanmış ve internet bağlantısı: config_wifiMultiStaRestrictedConcurrencyEnabled
  2. Aşağıdaki ilgili bölümlerde açıklandığı gibi her uygulamayı doğrulayın.

Daha iyi destek Wi-Fi STA / STA eşzamanlılık için, biz OEM özelleştirilmiş çerçeveler ve uygulamalar kullanmanızı tavsiye NetworkCallback#onCapabilitiesChanged() yerine yöntemini WifiManager#getConnectionInfo() sadece döner, WifiInfo tek bir ağ için, Android 12 kullanımdan kaldırıldı . daha fazla bilgi için, bkz eşler arası bağlantı için Wi-Fi Ağ İsteği API .

Aradan önce yap

Başarıyla yeni Wi-Fi ağına bağlanır ve internet erişimi vardır yalnızca eski ağ bağlantısının kesilmesi, mevcut kablosuz ağ bağlantısını korurken makyaj öncesi mola fonksiyonu yeni Wi-Fi ağına connnect cihazları tanır.

Aradan önce yap kullanım örneği, Android 11 veya önceki sürümlerde, cihazın yeni bir ağa bağlanmadan önce mevcut Wi-Fi ağından bağlantısını kesmesi gereken aşağıdaki sorunları giderir (yapmadan önce kes).

  • Yeni bir ağa bağlanırken, cihaz yanlış bir Wi-Fi şifresinin kayıtlı olduğunu veya yeni ağın internet erişimi olmadığını keşfedebilir. Bu, cihazı eski ağa geri dönmeye zorlar ve Wi-Fi bağlantısı olmadan önemli bir süreye yol açar.

  • Eski ağ bağlantısı aniden kesilir, bu da tüm soketlerin kapandığı anlamına gelir. Uygulamalar genellikle ani bir bağlantı kaybına iyi tepki vermez ve bu, kullanıcının yeni bağlantı tamamen kurulana kadar birkaç saniye internet bağlantısı olmadan yaşamasına neden olabilir.

  • Varsayılan ağ, eski Wi-Fi ağından hücresele, ardından hücreselden yeni Wi-Fi ağına iki kez değişir. Bu, uygulamaların ağ değişikliklerine iki kez tepki vermesine neden olur. Cihaz ayrıca hücresel veriyi kullanarak kısa bir süre harcamalıdır.

Kesmeden önce yap akışı yalnızca işletim sistemi tarafından başlatılan otomatik Wi-Fi ağ anahtarları için kullanılır. Kullanıcı tarafından başlatılan ağ anahtarları, yeni ağ bağlanmadan önce önceki ağın bağlantısının tamamen kesildiği eski oluşturma öncesi kesinti akışını kullanır. Bazı durumlarda, işletim sistemi tarafından başlatılan otomatik anahtarlarda bile, örneğin her ikisi de fabrika MAC adresini kullanmak üzere yapılandırılmış iki ağ arasında geçiş yaparken, kesme öncesi akışı kullanılır.

Uygulamalar bu kullanım örneği kullanılarak cihazda desteklenip desteklenmediğini kontrol edebilirsiniz WifiManager#isMakeBeforeBreakWifiSwitchingSupported() API.

Mola öncesi üretimin doğrulanması

Uygulamanızı doğrulamak için otomatik bir Wi-Fi ağ anahtarını tetikleyin (şu anda bağlı olan ağdan daha güçlü bir sinyal gücüne sahip bir ağ sağlayarak) ve cihazın yeni ağa bağlanırken mevcut bağlantıyı sürdürdüğünü doğrulayın. Her iki Wi-Fi arabiriminin durumunu görüntülemek ve her ikisinin de bağlı olduğunu doğrulamak için aşağıdaki komutu kullanın.

adb shell wpa_cli -i wlan0 status ; echo ; adb shell wpa_cli -i wlan1 status

Yeni ağın bağlantısı yoksa, cihaz mevcut ağ ile bağlantıyı sürdürürken ağa bağlanmaya çalışır ve yeni ağda internet olmadığını algıladığında denemeyi iptal eder. Cihaz daha sonra mevcut bağlantıyı birincil Wi-Fi ağı olarak kullanmaya devam eder.

Eşzamanlı yalnızca yerel ve internet bağlantısı

Eşzamanlı yerel okunur ve internet bağlantısı fonksiyonu, eş zamanlı olarak birinci internet sağlayan bir ağ ile bir IOT cihazına bir bağlantının yanı, aygıtlar yerel okunur bağlantısında bağlanmasını sağlar. İle mümkündür kameralar gibi IOT cihazları, bağlanırken, doğrudan Bu fonksiyon, bir kullanıcı deneyimi geliştirir WifiNetworkSpecifier Android 10 ilave API.

Android 11 ve önceki sürümlerde, cihazların bir IoT cihazına bağlanırken birincil Wi-Fi ağıyla bağlantısı kesilir ve bu da internet bağlantısının kaybolmasına neden olur (cihazda hücresel veri gibi başka bir aktarım türü yoksa).

Uygulamalar bu fonksiyon kullanılarak cihazda desteklenip desteklenmediğini kontrol edebilirsiniz WifiManager#isStaConcurrencyForLocalOnlyConnectionsSupported() API.

Android 12'de eşzamanlı yalnızca yerel ve internet bağlantısı işlevine değişikliklerle ilgili daha fazla bilgi için bkz eşler arası bağlantı için Wi-Fi Ağ İsteği API .

Yalnızca yerel ve internet bağlantısını doğrulama

Bu işlevi doğrulamak için aşağıdaki CTS ve ACTS testlerini kullanın:

  • CTS: MultiStaConcurrencyWifiNetworkSpecifierTest
  • EYLEMLERİ: WifiStaConcurrencyNetworkRequestTest

Eşzamanlı kısıtlı ve internet bağlantısı

Eşzamanlı kısıtlanmış ve internet bağlantısı işlevi conccurently kullanıcı ve Uygulamaları seçmek için kullanılabilir kısıtlı Wi-Fi ağına için birincil Wi-Fi ağına bağlanabilmesini sağlar.

Uygulamalar bu fonksiyon kullanılarak cihazda desteklenip desteklenmediğini kontrol edebilirsiniz WifiManager#isStaConcurrencyForRestrictedConnectionsSupported() API.

Bir cihazın ikincil kısıtlı Wi-Fi ağlarına bağlanmasını sağlamak için şu adımları izleyin:

  1. Ekle Kablosuz ağ önerileri ile setOemPaid veya setOemPrivate true seti.

  2. In ConnectivityManager , bir dosya NetworkRequest gelen yetenekleriyle:

Cihaz, OEM tarafından ödenen veya OEM özel önerisiyle eşleşen bir ağ ile tarama sonuçları algıladığında, otomatik olarak ona ikincil bir ağ olarak bağlanır.

Eşzamanlı kısıtlı ve internet bağlantısının doğrulanması

Bu işlevi doğrulamak için aşağıdaki CTS ve ACTS testlerini kullanın:

  • CTS: MultiStaConcurrencyRestrictedWifiNetworkSuggestionTest
  • EYLEMLERİ: WifiStaConcurrencyNetworkRequestTest

Satıcı Wi-Fi çip yönergeleri

Wi-Fi yongası satıcıları için Wi-Fi STA/STA eşzamanlılığını desteklemek için aşağıdaki yönergeleri kullanın.

Wi-Fi yongası, çift eşzamanlı STA bağlantılarını desteklemelidir. Bu, aşağıdakileri desteklediği anlamına gelir:

  • Her STA arayüzü, çerçeve tarafından programlanabilen benzersiz bir MAC'ye sahiptir.
  • İkincil STA arayüzü dinamik olarak oluşturulabilir ve yok edilebilir.
  • Her STA farklı bir SSID'ye bağlanabilir (aynı bant içinde veya farklı bir bant içinde).
  • Her STA aynı SSID'ye bağlanabilir (aynı bant içinde veya farklı bir bant içinde). İki STAs aynı BSSID bağlanmalıdır etmemelidir.

Kritik özellikler, arayüz bazında çalışmalı ve birincil arayüzde mevcut olmalıdır. Aşağıda bu kritik özelliklerin bir listesi bulunmaktadır:

  • En azından birincil arabirim ile desteklenmesi gerekir Dolaşım (kümesi kullanılarak IWifiChip.setMultiStaPrimaryConnection() ). Dolaşım her iki arabirimde de destekleniyorsa, bir bağlantıyla ilgili kararlar ikinci eşzamanlı bağlantıyla çakışmamalıdır. Örneğin, bir arabirim diğer bağlantının BSSID'sinde gezinmemelidir.

  • APF (ve ARP ve NS gibi diğer offloads) en azından birincil arabirim ile desteklenmesi gerekir (kullanarak grubu IWifiChip.setMultiStaPrimaryConnection() ).

  • Bağlantı katmanı istatistikleri, arayüz bazında çalışmalıdır.

Aşağıdakiler, farklı eşzamanlılık senaryoları için önerilen Wi-Fi yongası uygulamalarıdır:

  • Kablosuz çip çerçevesi aramaya izin vermelidir IWifiChip.setMultiStaUseCase() geçerli fonksiyonunu belirtmek için aşağıdaki sabitleri biriyle:

    • DUAL_STA_TRANSIENT_PREFER_PRIMARY : belirtir Make-Önce-Arası fonksiyonu. Birincil bağlantının kalitesi, ikincil bağlantıya göre önceliklendirilmelidir.
    • DUAL_STA_NON_TRANSIENT_UNBIASED : belirtir eşzamanlı yalnızca yerel ve internet bağlantısı ya da eşzamanlı kısıtlanmış ve internet bağlantısı işlevi. Her iki bağlantının kalitesine eşit şekilde öncelik verilmelidir.
  • İkili eşzamanlı STAs operasyonun MM, SCC ve DBS modları yol açabilir Çünkü çerçeve çağırdığında, satıcı uygulaması en iyi radyo yapılandırmasını seçmelisiniz IWifiChip.setMultiStaUseCase() işlevini gösterir. Aşağıdakiler genel yönergelerdir:

    • Varsa 2x2+2x2 DBS tercih edilir.
    • Bağlantı kalitesi üzerindeki aşırı etkisi nedeniyle mümkünse 1x1+1x1 DBS'den kaçının. Bunun yerine MM'yi tercih edin.
    • MCC görev döngüsü, çeşitli işlevler için sürücü veya bellenim tarafından yapılandırılabilir olmalıdır. Çerçeve doğrudan MM görev döngüsü ayarlanır, ancak kullanarak bu bilgileri sorgular vermez StaLinkLayerIfaceStats.timeSliceDutyCycleInPercent .
    • MCC kullanıyorsanız, birincil ve ikincil bağlantılar arasında aşağıdaki görev döngülerini öneririz:

      • DUAL_STA_TRANSIENT_PREFER_PRIMARY : Primer 70,% ikincil% 30.
      • DUAL_STA_NON_TRANSIENT_UNBIASED : Primer 50,% ikincil% 50.