Kablosuz hotspot (Soft AP)

Android, kablosuz hotspot ve yerel kablosuz hotspot'lar aracılığıyla tethering dahil olmak üzere kablosuz hotspot (Soft AP) desteği sunar.

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 istemci sayısı
  • Otomatik kapatma zaman aşımı değeri
  • İlişkili cihazları kullanıcıların kontrol etmesine izin vermek için izin verilenler ve engellenenler listeleri
  • AP BSSID için MAC rastgele hale getirme düzeyi
  • 802.11ax ve 802.11be

Bu denetimlerin kullanılabilirliği cihaz özellikleri tarafından belirlenir. Android 11 bu yetenekleri edinmek için API'leri kullanıma sunuyor. Cihaz üreticileri, yer paylaşımlarını kullanarak temel cihaz özelliklerini de belirtebilir.

Bazı API'lerin sistem API'leri olduğunu ve sadece sistemin Ayarlar uygulamasının erişebileceği şekilde izinler aracılığıyla kısıtlandığını unutmayın.

Hotspot API'leriyle uygulama geliştirme

Bağlantılı bir kablosuz hotspot'un varsayılan uygulaması, AOSP Ayarları uygulaması tarafından sağlanır. Ancak Soft AP yapılandırması için tüm API'leri uygulamaz.

Hotspot veya yalnızca yerel hotspot üzerinden tetheringin desteklenmesi için uygulamanın aşağıdaki işlevleri gerçekleştirmesi gerekir:

  1. Bağlı bir hotspot için WifiManager#registerSoftApCallback veya yalnızca yerel hotspot için WifiManager#registerLocalOnlyHotspotSoftApCallback kullanarak cihaz özelliklerini elde etmek üzere bir geri arama kaydedin.

    SoftApCallback geri çağırması aşağıdaki yöntemleri sağlar:

    • SoftApCallback#onCapabilityChanged: Desteklenen maksimum istemci sayısı ve SAE veya ACS'nin desteklenip desteklenmediği gibi cihaz özellikleri hakkında bilgi sağlar.
    • SoftApCallback#onInfoChanged: Bant ve frekans bilgileri de dahil olmak üzere, Soft AP'nin çalışması hakkında bilgi sağlar (yalnızca başlatıldıktan sonra geçerlidir).
    • SoftApCallback#onConnectedClientsChanged: Bağlı istemcilerin listesini sağlar. Her istemcinin MAC adresini öğrenebilirsiniz. IP bilgilerini almak için TetheringEventCallback#onClientsChanged geri çağırma özelliğini kullanın.
    • SoftApCallback#onStateChanged: Soft AP etkinleştirilip devre dışı bırakıldıkça durumuyla ilgili güncellemeler sağlar.
    • SoftApCallback#onBlockedClientConnecting: Engellenen istemci bilgilerini, engelleme için şu nedenlerden biriyle ilişkili olarak sağlıyor: Cihaz, destekleyebildiği maksimum istemci sayısına ulaşmış veya istemcinin bağlanma yetkisine açıkça sahip değil.

Tethered hotspot'u için:

  1. WifiManager#setSoftApConfiguration yöntemini çağırıp bir SoftApConfiguration örneği sağlayarak tethering için esnek AP yapılandırmasını yapılandırın. SoftApConfiguration.Builder sınıfını kullanarak SoftApConfiguration oluşturun.
  2. TetheringManager#startTethering adresinde tethering yöntemini çağırarak tethering'i başlatın.

Yalnızca yerel hotspot için:

  1. WifiManager#startLocalOnlyHotspot yöntemini çağırarak yalnızca yerel hotspot'u belirli bir soft AP yapılandırmasıyla başlatın.

İzin verme ve engelleme listelerini uygulama

Operatörün tipik bir gereksinimi, kullanıcıya Soft AP ile ilişkilendirilmesine izin verilen cihazların kontrollerini sağlamaktır. Bunu yapmanın birkaç mekanizması vardır:

  • SoftApConfiguration.Builder#setMaxNumberOfClients kullanarak esnek erişim noktası ile ilişkilendirilebilecek maksimum cihaz sayısını sınırlandırın. Cihazın desteklediği maksimum istemci sayısından daha düşük bir sayı belirttiğinizden emin olun. Maksimum sayıyı SoftApCapability#getMaxSupportedClients kaynağından alabilirsiniz.
  • İzin ver ve engelleme listelerini kullanarak dinamik kontrol sağlayın:

    • Soft AP'nin varsayılan yapılandırması, MAC adresleri SoftApConfiguration.Builder#setBlockedClientList hizmetine eklenen cihazlar hariç tüm cihazların yazılım erişim noktası ile ilişkilendirilmesine izin verir.
    • Soft AP SoftApConfiguration.Builder#setClientControlByUserEnabled(true) ile yapılandırılırsa izin verilenler listesi kullanılır.

      • MAC adresleri SoftApConfiguration.Builder#setBlockedClientList dahilinde olan tüm cihazların ilişkilendirilmesi engellenir.
      • MAC adresleri SoftApConfiguration.Builder#setAllowedClientList içinde olan tüm cihazların ilişkilendirilmesine izin verilir.
      • Diğer tüm cihazların (MAC adresleri izin ver veya engelleme listesinde bulunmayan cihazlar) ilişkilendirme engellenir ancak SoftApCallback#onBlockedClientConnecting çağrılır. Bu şekilde, kontrol eden uygulamanın (yani Ayarlar uygulaması) kullanıcının davranışına bağlı olarak kullanıcıdan onay istemesi ve ardından cihazı izin verilenler listesine ya da engelleme listesine eklemesi gibi bir işlem yapmasına izin verilir.

    Cihazların, izin verilenler listesi işlevini yalnızca cihazda destekleniyorsa kullanabileceğini unutmayın. SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT) kullanarak cihaz desteğini doğrulayabilirsiniz.

Uygulama

Cihaz üreticileri, hotspot üzerinden tethering'i desteklemek veya yalnızca yerel hotspot'u desteklemek için Ayarlar uygulaması, çerçeve ve HAL/donanım yazılımı desteğini sunmalıdır:

  • Ayarlar uygulaması: AOSP Ayarları uygulaması, SSID ve güvenlik kimlik bilgileriyle tethering hotspot'unun yapılandırılması için bir başlangıç noktası sağlar. Bu kod, Hotspot API'lerine sahip uygulamalar geliştirme bölümünde açıklandığı gibi ek özellikler sağlamak için olduğu gibi kullanılabilir veya değiştirilebilir.

  • Çerçeve: AOSP çerçeve kodu, Hotspot API'leri olan uygulamalar geliştirme bölümünde açıklanan tüm işlevleri destekler.

  • Hotspot için HAL/donanım yazılımı: HIDL IHostapd.hal 1.2 veya sonraki sürümü ya da AIDL IHostapd.aidl.

Özelleştirme

Uygulamayı özelleştirmek için cihaz üreticileri, packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml sayfasında belgelenen aşağıdaki yer paylaşımlarını ve operatör yapılandırmalarını yapılandırmalıdır:

  • 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 operatör kısıtlamalarının minimum sayısıdır (CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT ile belirtilir). Nihai sonuç, SoftApCapabilities#getMaxSupportedClients ile uygulamaya sağlanır.
  • config_wifiSofapClientForceDisconnectSupported: Cihazın, bir istemcinin bağlantısını kesmeye zorlama yeteneğinin olup olmadığı. İzin verme ve engelleme listelerini etkinleştirmek için gereklidir. Kontrol uygulamasına (Ayarlar uygulaması) SoftApCapabilities#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT) üzerinden iletilir.
  • (13'ten itibaren kullanılabilir) config_wifiSoftapPassphraseAsciiEncodableCheck: Soft AP parolasının ASCII kodlanabilir olması gerekip gerekmediği.
  • config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported: Yeni bir cihaz desteklendiğinde bulut yapılandırması geri yükleme sırasında bant ayarı yapılandırmasının otomatik olarak çift banda yükseltilip yükseltilmeyeceğini belirler.
  • (13'ten itibaren kullanılabilir) config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled: Çerçevenin, birlikte kullanım durumunu önlemek için bant yapılandırmasına otomatik olarak alt bantlar ekleyip eklememesi.
  • 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.
  • Hotspot yapılandırmasını yeni bir cihaza geri yüklerken, ilgili girişlerin varsayılana sıfırlanıp sıfırlanmayacağını belirterek destek desteğini geri yükleyin: config_wifiSoftapResetChannelConfig, config_wifiSoftapResetHiddenConfig, config_wifiSoftapResetUserControlConfig, config_wifiSoftapResetAutoShutdownTimerConfig, config_wifiSoftapResetMaxClientSettingConfig. Bunların varsayılan olarak true değerine ayarlandığını, yani değerlerin sıfırlandığını unutmayın. Yeni cihaz yapılandırmayı desteklemiyorsa bu adım kritik öneme sahiptir.
  • Donanım özellikleri:
    • config_wifi_softap_acs_supported
    • config_wifi_softap_sae_supported
    • (13'ten itibaren kullanılabilir) config_wifiSoftapOweTransitionSupported
    • (13'ten itibaren kullanılabilir) config_wifiSoftapOweSupported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • (13'ten itibaren kullanılabilir) 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, hotspot özelliğini doğrulamak için bir dizi birim testi ve Uyumluluk Test Paketi (CTS) testi sağlar. Hotspot özelliği, Tedarikçi Test Paketi (VTS) kullanılarak da test edilebilir.

Birim testleri

Aşağıdaki testleri kullanarak hotspot paketini doğrulayın.

  • Hizmet testleri:

    atest packages/modules/Wifi/service/tests/wifitests/
    
  • Yönetici tarafından test edilir:

    atest packages/modules/Wifi/framework/tests/
    

Uyumluluk Test Paketi (CTS) testleri

Hotspot özelliğini doğrulamak için CTS testlerini kullanın. CTS, özelliğin etkinleştirildiğini algılar ve ilişkili testleri otomatik olarak dahil eder.

CTS testlerini tetiklemek için şu komutu çalıştırın:

atest android.net.wifi.cts.WifiManagerTest

Tedarikçi Firma Test Paketi (VTS)

HIDL arayüzü uygulanmışsa aşağıdaki komutu çalıştırın:

atest VtsHalWifiHostapdV1_2Target

AIDL arayüzü uygulanmışsa şunu çalıştırın:

atest VtsHalHostapdTargetTest