Wi-Fi Bağlantı Noktası (Soft AP)

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:

  1. Bağlı bir ortak erişim noktası için WifiManager#registerSoftApCallback veya yalnızca yerel bir ortak erişim noktası için WifiManager#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çin TetheringEventCallback#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:

  1. WifiManager#setSoftApConfiguration yöntemini çağırarak ve bir SoftApConfiguration ö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ı kullanarak SoftApConfiguration oluşturun.
  2. TetheringManager#startTethering adresindeki bağlama yöntemini çağırarak bağlama işlemini başlatın.

Yalnızca yerel erişim noktası için:

  1. 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.

    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.

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:

Ö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ızca SoftApConfiguration#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ç, uygulamaya SoftApCapabilities#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 ve config_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 olarak true 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 mevcuttur) 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