Android, Wi-Fi ortak erişim noktası ve yalnızca yerel Wi-Fi ortak erişim noktaları aracılığıyla bağlanma da dahil olmak üzere Wi-Fi ortak erişim noktası (Yumuşak AP) desteği sağlar.
Soft AP özelliği aşağıdakilerin yapılandırılmasına olanak tanır:
- SSID ve BSSID
- Güvenlik türü (WPA3 dahil)
- Gizli SSID
- Çalışma bandı ve kanalı (ACS dahil)
- İzin verilen maksimum müşteri sayısı
- Otomatik kapanma zaman aşımı değeri
- İlgili cihazların kullanıcı tarafından kontrol edilmesine izin veren izin verilenler listesi ve engellenenler listesi
- AP BSSID için MAC rastgeleleştirme düzeyi
- 802.11ax ve 802.11be
Cihaz yetenekleri bu kontrollerin kullanılabilirliğini belirler. Android 11, bu yetenekleri elde etmek için API'leri sunar. Cihaz üreticileri ayrıca katmanları kullanarak temel cihaz özelliklerini de belirtebilir.
API'lerden bazılarının sistem API'leri olduğunu ve izinler yoluyla kısıtlandığını, böylece yalnızca sistemin Ayarlar uygulamasının bunlara erişebileceğini unutmayın.
Hotspot API'leri ile uygulamalar geliştirme
Bağlı bir Wi-Fi erişim noktasının varsayılan uygulaması AOSP Ayarları uygulaması tarafından sağlanır, ancak Soft AP yapılandırması için tüm API'leri kullanmaz.
Bir erişim noktası veya yalnızca yerel erişim noktası aracılığıyla internet paylaşımını desteklemek için uygulamanın aşağıdaki işlevleri gerçekleştirmesi gerekir:
Bağlı bir ortak erişim noktası için
WifiManager#registerSoftApCallback
veya yalnızca yerel bir ortak erişim noktası içinWifiManager#registerLocalOnlyHotspotSoftApCallback
kullanarak cihaz özelliklerini elde etmek için bir geri arama kaydedin.SoftApCallback
geri araması aşağıdaki yöntemleri sağlar:-
SoftApCallback#onCapabilityChanged
: Desteklenen maksimum istemci sayısı ve SAE veya ACS'nin desteklenip desteklenmediği de dahil olmak üzere cihaz özellikleri hakkında bilgi sağlar. -
SoftApCallback#onInfoChanged
: Bant ve frekans bilgileri de dahil olmak üzere, çalışan Soft AP hakkında bilgi sağlar (yalnızca başlatıldığında geçerlidir). -
SoftApCallback#onConnectedClientsChanged
: Bağlı istemcilerin bir listesini sağlar. Her istemci için MAC adresini alabilirsiniz. IP bilgilerini almak içinTetheringEventCallback#onClientsChanged
geri aramasını kullanın. -
SoftApCallback#onStateChanged
: Soft AP etkinleştirildiğinde ve devre dışı bırakıldıkça durumu hakkında güncellemeler sağlar. -
SoftApCallback#onBlockedClientConnecting
: Engellenen istemci bilgilerini aşağıdaki engelleme nedenlerinden biriyle birlikte sağlar: cihaz destekleyebileceği maksimum istemci sayısına ulaştı veya istemcinin açıkça bağlanma yetkisine sahip değil.
-
Bağlı bir erişim noktası için:
-
WifiManager#setSoftApConfiguration
yöntemini çağırarak ve birSoftApConfiguration
örneği sağlayarak, internet paylaşımı için soft AP yapılandırmasını yapılandırın.SoftApConfiguration.Builder
sınıfını kullanarakSoftApConfiguration
oluşturun. -
TetheringManager#startTethering
adresindeki bağlama yöntemini çağırarak bağlama işlemini başlatın.
Yalnızca yerel erişim noktası için:
-
WifiManager#startLocalOnlyHotspot
yöntemini çağırarak yalnızca yerel erişim noktasını belirli bir yazılımsal AP yapılandırmasıyla başlatın.
İzin verilenler ve engellenenler listelerinin uygulanması
Tipik bir taşıyıcı gereksinimi, kullanıcıya Soft AP ile ilişkilendirilmesine izin verilen cihazların kontrollerini sağlamaktır. Bunu yapmak için çeşitli mekanizmalar vardır:
-
SoftApConfiguration.Builder#setMaxNumberOfClients
kullanarak yazılım AP'siyle ilişkilendirilebilecek maksimum cihaz sayısını sınırlayın. Cihazın desteklediği maksimum istemci sayısından daha düşük bir sayı belirttiğinizden emin olun. Maksimum sayıyıSoftApCapability#getMaxSupportedClients
adresinden alabilirsiniz. İzin verilenler ve engellenenler listelerini kullanarak dinamik kontrol sağlayın:
- Soft AP'nin varsayılan yapılandırması, MAC adresleri
SoftApConfiguration.Builder#setBlockedClientList
eklenen cihazlar hariç tüm cihazların soft AP ile ilişkilendirilmesine olanak tanır. Soft AP,
SoftApConfiguration.Builder#setClientControlByUserEnabled( true )
ile yapılandırılmışsa izin verilenler listesi kullanılır.- MAC adresleri
SoftApConfiguration.Builder#setBlockedClientList
bulunan tüm cihazların ilişkilendirilmesi engellenir. - MAC adresleri
SoftApConfiguration.Builder#setAllowedClientList
bulunan tüm cihazların ilişkilendirilmesine izin verilir. - Diğer tüm aygıtların (yani, MAC adresleri izin verilenler veya engellenenler listesinde olmayan aygıtların) ilişkilendirme yapması engellenir ancak
SoftApCallback#onBlockedClientConnecting
çağrılır ve kontrol uygulamasının (yani Ayarlar uygulamasının) bir eylem gerçekleştirmesine izin verilir. Örneğin, kullanıcıdan onay istenmesi ve ardından kullanıcının davranışına bağlı olarak cihazın izin verilenler listesine veya engellenenler listesine eklenmesi.
- MAC adresleri
Cihazların izin verilenler listesi işlevini yalnızca cihazda desteklenmesi durumunda kullanabileceğini unutmayın.
SoftApCapability#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT )
kullanarak cihaz desteğini doğrulayabilirsiniz.- Soft AP'nin varsayılan yapılandırması, MAC adresleri
Uygulama
Bir erişim noktası aracılığıyla internet paylaşımını desteklemek veya yalnızca yerel bir erişim noktasını desteklemek için cihaz üreticilerinin Ayarlar uygulaması, çerçeve ve HAL/ürün yazılımı desteği sağlaması gerekir:
Ayarlar uygulaması: AOSP Ayarları uygulaması, SSID ve güvenlik kimlik bilgileriyle bir bağlantı etkin noktasını yapılandırmak için bir temel sağlar. Bu kod olduğu gibi kullanılabilir veya Erişim noktası API'leri ile uygulamalar geliştirme bölümünde açıklandığı gibi ek özellikler sağlamak üzere değiştirilebilir.
Çerçeve: AOSP çerçeve kodu , Hotspot API'leriyle uygulama geliştirme bölümünde açıklanan tüm işlevleri destekler.
Erişim noktası için HAL/ürün yazılımı: HIDL IHostapd.hal sürüm 1.2 veya üzeri ya da AIDL IHostapd.aidl .
Özelleştirme
Uygulamayı özelleştirmek için cihaz üreticilerinin packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml
dosyasında belgelenen aşağıdaki katmanları ve taşıyıcı yapılandırmalarını yapılandırması gerekir:
-
config_wifiFrameworkSoftApShutDownTimeoutMilliseconds
: Varsayılan kapatma zaman aşımı aralığı. YalnızcaSoftApConfiguration#setAutoShutdownEnabled
etkinse geçerlidir.SoftApConfiguration#setShutdownTimeoutMillis
kullanılarak geçersiz kılınabilir. -
config_wifiHardwareSoftapMaxClientCount
: Desteklenen maksimum istemci sayısı için donanım sınırlaması. Cihazın desteklediği maksimum istemci sayısı, donanım ve taşıyıcı kısıtlamalarının minimum sayısıdır (CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT
tarafından belirtilir). Nihai sonuç, uygulamayaSoftApCapabilities#getMaxSupportedClients
ile sağlanır. -
config_wifiSofapClientForceDisconnectSupported
: Cihazın bir istemcinin bağlantısını kesmeye zorlama yeteneğine sahip olup olmadığı. İzin verilenler ve engellenenler listelerini etkinleştirmek için gereklidir.SoftApCapabilities#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT )
) aracılığıyla kontrol uygulamasıyla (Ayarlar uygulaması) iletişim kuruldu. - (13'ten itibaren mevcuttur)
config_wifiSoftapPassphraseAsciiEncodableCheck
: Yazılım AP parolasının ASCII kodlanabilir olması gerekip gerekmediği. -
config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported
: Yeni bir cihaz desteklendiğinde bulut yapılandırmasını geri yükleme sırasında bant ayarı yapılandırmasının otomatik olarak çift bantlara yükseltilip yükseltilmeyeceği. - (13'ten itibaren kullanılabilir)
config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled
: Çerçevenin, birlikte varoluş işlemesini önlemek için bant yapılandırmasına otomatik olarak alt bantları ekleyip eklemediği. -
config_wifiSoftApDynamicCountryCodeUpdateSupported
: AP modunda dinamik ülke kodu güncellemesinin cihazda desteklenip desteklenmediği - Kanal desteği:
config_wifiSoftap2gChannelList
,config_wifiSoftap5gChannelList
,config_wifiSoftap6gChannelList
veconfig_wifiSoftap60gChannelList
. - Erişim noktası yapılandırmasını yeni bir cihaza geri yüklerken ilgili girişlerin varsayılana sıfırlanıp sıfırlanmayacağını belirten geri yükleme desteği:
config_wifiSoftapResetChannelConfig
,config_wifiSoftapResetHiddenConfig
,config_wifiSoftapResetUserControlConfig
,config_wifiSoftapResetAutoShutdownTimerConfig
,config_wifiSoftapResetMaxClientSettingConfig
. Bunların varsayılan olaraktrue
olarak ayarlandığını, yani değerlerin sıfırlandığını unutmayın. Yeni cihaz yapılandırmayı desteklemiyorsa bu kritik öneme sahiptir. - Donanım yetenekleri:
-
config_wifi_softap_acs_supported
-
config_wifi_softap_sae_supported
- (13'ten itibaren mevcuttur)
config_wifiSoftapOweTransitionSupported
- (13'ten itibaren mevcuttur)
config_wifiSoftapOweSupported
-
config_wifi_softap_ieee80211ac_supported
-
config_wifiSoftapIeee80211axSupported
- (13'ten itibaren mevcut)
config_wifiSoftapIeee80211beSupported
-
config_wifiSoftapMacAddressCustomizationSupported
-
config_wifiSoftapHeSuBeamformerSupported
-
config_wifiSoftapHeSuBeamformeeSupported
-
config_wifiSoftapHeMuBeamformerSupported
-
config_wifiSoftapHeTwtSupported
-
config_wifiSoftap24ghzSupported
-
config_wifiSoftap5ghzSupported
-
config_wifiSoftap6ghzSupported
-
config_wifiSoftap60ghzSupported
-
config_wifiSoftapAcsIncludeDfs
-
Doğrulama
Android, erişim noktası özelliğini doğrulamak için bir dizi birim testi, entegrasyon testi (Android Bağlantı Test Paketi veya ACTS) ve Uyumluluk Test Paketi (CTS) testleri sağlar. Etkin nokta özelliği ayrıca Satıcı Test Paketi (VTS) kullanılarak da test edilebilir.
Birim testleri
Aşağıdaki testleri kullanarak etkin nokta paketini doğrulayın.
Servis testleri:
atest packages/modules/Wifi/service/tests/wifitests/
Yönetici testleri:
atest packages/modules/Wifi/framework/tests/
Entegrasyon testleri (ACTS)
tools/test/connectivity/acts_tests/tests/google/wifi/WifiSoftApTest.py
adresinde bulunan ACTS sıcak nokta test paketi, sıcak nokta özelliğinin işlevsel testlerini uygular.
Uyumluluk Test Paketi (CTS) testleri
Etkin nokta özelliğini doğrulamak için CTS testlerini kullanın. CTS, özelliğin ne zaman etkinleştirildiğini algılar ve ilgili testleri otomatik olarak dahil eder.
CTS testlerini tetiklemek için şunu çalıştırın:
atest android.net.wifi.cts.WifiManagerTest
Satıcı Test Paketi (VTS)
HIDL arayüzü uygulandıysa şunu çalıştırın:
atest VtsHalWifiHostapdV1_2Target
AIDL arayüzü uygulandıysa şunu çalıştırın:
atest VtsHalHostapdTargetTest