Android 12'de kablosuz ağ STA/STA eşzamanlılığı sunuluyor. Bu, cihazların aynı anda iki kablosuz ağa bağlanmasına olanak tanır. İsteğe bağlı bu özellik, aşağıdaki işlevleri etkinleştirir.
- Aradan önce başlatma: Cihaz yeni bir kablosuz ağa bağlantı kurar. önce yapmanız gerekenleri öğrenin. Bu durum, Kablosuz ağlar arasında geçiş yaparken daha akıcı geçişler
- Eşzamanlı yalnızca yerel ve internet bağlantısı: Cihaz yalnızca yerel bir ağa bağlandığında (cihazın çalışmasını kesintiye uğratmadan) bağlantıyı sağlayan birincil bağlantı.
- Eşzamanlı kısıtlı ve internet bağlantısı: Cihaz kısıtlı bir ağa bağlandığında (yalnızca belirli ayrıcalıklı uygulamalarda kullanılabilir) Google'ın ana bilgisayar bağlantısını otomatik olarak sağlar.
- (Android 13 veya sonraki sürümler) Eş zamanlı birden çok internet bağlantısı olan ağlar: Cihaz Her ikisi de kısıtlanmamış ve tüm uygulamalar tarafından kullanılabilen iki ağa bağlanabilir. ve internet bağlantısı sağlar.
Bu sayfada, bu özellik etkinleştirildiğinde cihaz davranışı açıklanmaktadır ve cihaz üreticileri ve satıcılar için uygulama ayrıntıları.
Uygulama
Cihazların, Kablosuz STA/STA özelliğini uygulamak için aşağıdakileri desteklemesi gerekir: eşzamanlılık:
Kablosuz çipi veya donanım yazılımı iki eşzamanlı STA'yı desteklemelidir bağlantılar. Donanım yazılımı tüm kanal ve bant kombinasyonlarını desteklemelidir kullanabilirsiniz. Performans sorunları yaşamamak için 2x2+2x2 DBS özellikli Wi-Fi çipi bulunmalıdır.
Cihaz, AIDL veya HIDL'de aşağıdaki API'leri desteklemelidir:
IWifiChip
uygulanması.IWifiChip.setMultiStaPrimaryConnection(String ifName)
IWifiChip.setMultiStaUseCase(MultiStaUseCase useCase)
HAL kablosuz ağ arayüzü kombinasyonunda iki eşzamanlı STA arayüzü bulunmalıdır
[{STA} <= 2, ...]
gibi bir spesifikasyon biçimi kullanılarak gösterilir. Örneğin, daha fazla bilgi için Kablosuz çoklu arayüz eşzamanlılığı.
Bu ön koşullar karşılanırsa aşağıdaki adımları izleyerek kablosuz ağ STA/STA eşzamanlılığını uygulayın: şu:
Şunu kullanarak bir veya daha fazla işlevi tek tek etkinleştirin: çalışma zamanı kaynak yer paylaşımları (Google Chrome varsayılan olarak ayarlanır).
- Aradan önce başlatma:
config_wifiMultiStaNetworkSwitchingMakeBeforeBreakEnabled
- Eşzamanlı yalnızca yerel ve internet bağlantısı:
config_wifiMultiStaLocalOnlyConcurrencyEnabled
- Eşzamanlı kısıtlı ve internet bağlantısı:
config_wifiMultiStaRestrictedConcurrencyEnabled
- İnternet bağlantısıyla eşzamanlı olarak birden fazla ağ:
config_wifiMultiStaMultiInternetConcurrencyEnabled
- Aradan önce başlatma:
Her uygulamayı ilgili bölümlerde açıklandığı şekilde doğrulayın.
Kablosuz ağ STA/STA eşzamanlılığını daha iyi desteklemek için OEM tarafından özelleştirilmiş
çerçeveler ve uygulamalar, NetworkCallback#onCapabilitiesChanged()
yöntemini kullanır
, WifiManager#getConnectionInfo()
yerine yalnızca WifiInfo
değerini döndürür.
Android 12'de desteği sonlandırılmıştır. Örneğin,
daha fazla bilgi için
Eşler arası bağlantı için Wi-Fi Network Request API.
Aradan öncesini hazırlama
Aradan önce yap işlevi, cihazların yeni bir kablosuz ağa bağlanmasına olanak tanır. mevcut kablosuz ağ bağlantısını korurken, yalnızca Yeni ağa başarıyla bağlandığında eski ağ bağlantısını kesme Wi-Fi ve internet erişimi var.
İlk ara kullanım senaryosu, Cihazın bağlantısının kesilmesi gereken Android 11 veya önceki sürümler Yeni bir ağa bağlanmadan önce mevcut kablosuz ağdan (yapmadan önce ara).
Yeni bir ağa bağlanırken cihaz, bir ağ bağlantısı olduğunu ve Kablosuz şifrenin kaydedilmiş olması veya yeni ağın kaydetmediği internet erişimi vardır. Bu işlem, cihazı eski sürüme dönmeye zorlar Bu da kablosuz bağlantının çok uzun süre kullanılmasına neden oluyor.
Eski ağın bağlantısı aniden kopuyor. Bu da, yuvalar kapanıyor. Uygulamalar çoğu durumda değişimlerdeki ani kayıplara bağlantı kurulabilir ve bu da kullanıcı yeni gelene kadar internet bağlantısı olmadan birkaç saniye kurulduğundan emin olun.
Varsayılan ağ iki kez değişir: Eski kablosuz ağdan hücresel ağa, sonra hücreselden yeni kablosuz ağa bağlayın. Bu durum, uygulamaların ağ iki kez değiştirilir. Ayrıca, cihaz üzerinde saati hücresel veri kullanarak sürdürebilir.
Aradan önce başlatma akışı yalnızca otomatik kablosuz ağda kullanılır anahtar sayısı. Kullanıcı tarafından başlatılan ağ anahtarları, önceki ağın tamamen bağlantısının kesildiği yapımdan önce ayrılma akışı kontrol edin. Bazı durumlarda, çalıştırmadan önce-yapma akışı, kullanıcı tarafından başlatılan otomatik geçişlerde bile İşletim sistemi (örneğin, her ikisi de fabrika MAC adresi.
Uygulamalar, bu kullanım alanının desteklenip desteklenmediğini kontrol etmek için
WifiManager#isMakeBeforeBreakWifiSwitchingSupported()
API.
Aradan önce oluşturmayı doğrulama
Uygulamanızı doğrulamak için otomatik bir kablosuz ağ geçişi tetikleyin (Google.com'un sağladığı sinyalden daha güçlü bir sinyal gücüne olup olmadığını kontrol edin ve cihazın, ağ bağlantısı ve ağ bağlantısı mevcut bağlantıyı devre dışı bırakmalısınız. Her iki kablosuz ağ arayüzünün durumunu görüntülemek ve bunların birbirine 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ğda bağlantı yoksa cihaz ağa bağlanmaya çalışır, aynı zamanda mevcut ağla bağlantıyı keser ve tespit ettiğinde denemeyi iptal eder yeni ağda internet yok demektir. Ardından cihaz birincil kablosuz ağ olarak ayarlayın.
Eşzamanlı yalnızca yerel ve internet bağlantısı
Eşzamanlı yalnızca yerel ve internet bağlantısı işlevi, cihazların şunları yapmasına olanak tanır:
bir IoT cihazı bağlantısı gibi yalnızca yerel bir bağlantıya
ile eşzamanlı olarak izlemesi gerekir. Bu işlev şu şekilde iyileşir:
IoT cihazlarına doğrudan bağlanarak sağladığı kullanıcı deneyimini
Bunu, eklenen WifiNetworkSpecifier
API'si aracılığıyla yapabilirsiniz:
Android 10.
Android 11 ve önceki sürümlerde cihazların birincil kablosuz ağa bağlanarak internet bağlantısı (cihazın başka bir aktarım türü yoksa (Hücresel veri gibi).
Uygulamalar, bu işlevin cihazda desteklenip desteklenmediğini kontrol etmek için
WifiManager#isStaConcurrencyForLocalOnlyConnectionsSupported()
API.
Eşzamanlı yalnızca yerel ve internete yönelik değişiklikler hakkında daha fazla bilgi bağlantı işlevi hakkında daha fazla bilgi için bkz. Eşler arası bağlantı için Wi-Fi Network Request API.
Yalnızca yerel bağlantıyı ve internet bağlantısını doğrulayın
Bu işlevi doğrulamak için
MultiStaConcurrencyWifiNetworkSpecifierTest
CTS testi.
Eşzamanlı kısıtlı veri ve internet bağlantısı
Eşzamanlı kısıtlı ve internet bağlantısı işlevi, cihazın kullanıcının birincil kablosuz ağına eşzamanlı olarak bağlanmasını sağlar. yalnızca belirli uygulamaların kullanabileceği kısıtlı kablosuz ağ.
Uygulamalar, bu işlevin cihazda desteklenip desteklenmediğini kontrol etmek için
WifiManager#isStaConcurrencyForRestrictedConnectionsSupported()
API.
Bir cihazın ikincil kısıtlanmış kablosuz ağlara bağlanmasını sağlamak için şu adımları uygulayın:
Ekle Kablosuz ağ önerileri şununla:
setOemPaid
veyasetOemPrivate
değerine ayarlanır.ConnectivityManager
içinde, ilgili dosya ile birNetworkRequest
dosyası oluşturun özellikler:NET_CAPABILITY_OEM_PAID
setOemPaid
içinNET_CAPABILITY_OEM_PRIVATE
setOemPrivate
için
Cihaz, ücretli OEM veya ücretli OEM ile eşleşen bir ağ ile tarama sonuçlarını algıladığında OEM özel önerisi; bu otomatik olarak ikincil ağ olarak bağlanır.
Eşzamanlı kısıtlanmış ve internet bağlantısını doğrulayın
Bu işlevi doğrulamak için
MultiStaConcurrencyRestrictedWifiNetworkSuggestionTest
CTS testi.
İnternet bağlantısıyla eşzamanlı olarak birden fazla ağ
Android 13 veya sonraki sürümlerde kullanılabilen eş zamanlı internet bağlantısı olan birden fazla ağ özelliği, cihazın Her ikisi de kısıtlanmamış iki ağa aynı anda bağlanmalıdır (tüm uygulamaların erişimi vardır) ve internet erişimi sağlar.
Uygulamalar, bu özelliğin cihazda desteklenip desteklenmediğini kontrol etmek için
WifiManager#isStaConcurrencyForMultiInternetSupported()
yöntemidir.
Özellik destekleniyorsa ayrıcalıklı uygulamalar, özelliği
WifiManager#setStaConcurrencyForMultiInternetMode(int mode)
yöntemini çağırın. İlgili içeriği oluşturmak için kullanılan
özelliği aşağıdaki modlara sahiptir:
WifiManager#WIFI_MULTI_INTERNET_MODE_DBS_AP
: Çift bağlantıları DBS AP'nin çift bantlarıyla kısıtlar.WifiManager#WIFI_MULTI_INTERNET_MODE_MULTI_AP
: Her bir bağlantının kullandığı rastgele erişim noktasına (AP'ye) bağlanır farklı bantlar var.WifiManager#WIFI_MULTI_INTERNET_MODE_DISABLED
: Özelliği devre dışı bırakır.
Şu anda etkin olan özellik modunu sorgulamak için
WifiManager#getStaConcurrencyForMultiInternetMode()
yöntemidir.
Özellik etkinleştirildiğinde, ek bir veri toplama isteğinde bulunmak için aşağıdaki adımları uygulayın: kablosuz ağ sağlayan bir ağ olarak düşünün.
Şunu kullanarak bir kablosuz ağ tanımlayıcısı oluştur:
WifiNetworkSpecifier.Builder
. Şunu kullanarak tanımlayıcı için bir bant seçin:setBand()
yöntemidir. için ek ağ olarak SSID veya BSSID'yi belirtmeyin belirtilen bant Wi-Fi çerçevesi tarafından seçilir.Kullanım
ConnectivityManager
birNetworkRequest
oluşturunNET_CAPABILITY_INTERNET
olanağı sunar.Tanımlayıcıyı, ağ isteğine
NetworkCallback
ve örneği göndererek isteğin durumunu takip edin ve isteğiConnectivityManager
. İstenen kayışa sahip kayıtlı bir ağ tarama sonucunda kullanılabilir ve ağ bağlantısı başarılı,NetworkCallback.onAvailable()
geri çağırma nesnesinde çağrılır.
İnternet bağlantısıyla eş zamanlı birden çok ağı doğrulayın
Bu işlevi doğrulamak için aşağıdaki CTS testini kullanın:
- CTS:
MultiStaConcurrencyMultiInternetWifiNetworkTest
Tedarikçi firma kablosuz ağ çipi yönergeleri
Wi-Fi çipi tedarikçi firmalarını desteklemek amacıyla aşağıdaki yönergeleri kullanın Wi-Fi STA/STA eşzamanlılığı.
Kablosuz çipin çift eşzamanlı STA bağlantısını desteklemesi gerekir. Bu demek oluyor ki şunları destekler:
- Her STA arayüzünde çerçeve tarafından programlanabilen benzersiz bir MAC bulunur.
- İkincil STA arayüzü dinamik olarak oluşturulup kaldırılabilir.
- Her STA farklı bir SSID'ye (aynı kayış veya farklı bir kayış).
- Her STA aynı SSID'ye (aynı kayış veya farklı bir kayış). İki STA hiçbir zaman aynı BSSID'ye bağlı olduğundan emin olun.
Kritik özellikler arayüz başına çalışmalı ve birincil arayüzde de mevcuttur. Bu kritik önem taşıyan risklerin özellikler:
Dolaşım, en azından birincil arayüzde desteklenmelidir (
IWifiChip.setMultiStaPrimaryConnection()
) bilgileri gösterilir. Dolaşım şurada destekleniyorsa: her iki arayüzde de çalışır. Bir bağlantıyla ilgili kararlar, ikinci eşzamanlı bağlantı. Örneğin, bir arayüz dolaşımda olmamalıdır için BSSID'yi tekrarlamanız gerekir.APF (ve ARP ve NS gibi diğer boşaltımlar) en az birincil arayüz (
IWifiChip.setMultiStaPrimaryConnection()
) bilgileri gösterilir.Bağlantı katmanı istatistikleri, arayüz bazında çalışmalıdır.
Aşağıda, farklı ağlar için önerilen kablosuz çip uygulamaları eşzamanlılık senaryoları:
Kablosuz çipi, çerçevenin şunu çağırmasına izin vermelidir:
IWifiChip.setMultiStaUseCase()
değeri için aşağıdaki sabit değerlerden birini kullanarak geçerli işlevi belirtin:DUAL_STA_TRANSIENT_PREFER_PRIMARY
: Make-Before-Break işlevi. Birincil bağlantının kalitesi birincil bağlantıya göre öncelikli olmalıdır.DUAL_STA_NON_TRANSIENT_UNBIASED
: eş zamanlı yalnızca yerel bağlantı ve internet bağlantısı veya eş zamanlı kısıtlı ve internet bağlantısı işlevini kullanın. Her ikisinin de kalitesi bağlantılara eşit öncelik verilmelidir.
Çünkü çift eşzamanlı STA'lar MM, SCC ve DBS modlarına tedarikçi uygulaması, en iyi radyo istasyonunu çerçeve tarafından
IWifiChip.setMultiStaUseCase()
komutu çağrıldığında konfigürasyon fonksiyonunu belirtin. Genel kurallar şu şekildedir:- Varsa 2x2+2x2 DBS tercih edilir.
- bağlantı kalitesini artırır. Bunun yerine MM hesabını tercih edin.
- MM görev döngüsü, sürücü veya donanım yazılımı tarafından
açıklayacağım. Çerçeve, MM görev döngüsünü belirlememiştir
ancak bu bilgileri
StaLinkLayerIfaceStats.timeSliceDutyCycleInPercent
MM kullanıyorsanız, yeni bir müşteri hizmetleri temsilcisiyle ve ikincil bağlantılar:
DUAL_STA_TRANSIENT_PREFER_PRIMARY
: %70 birincil, %30 ikincil.DUAL_STA_NON_TRANSIENT_UNBIASED
: %50 birincil, %50 ikincil.