Kablosuz hotspot (Soft AP)

Android, tethering dahil olmak üzere kablosuz hotspot (Yumuşak AP) desteği sağlar kablosuz hotspot ve yalnızca yerel kablosuz hotspot'lar üzerinden

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, bunları elde etmek için API'leri kullanıma sunuyor. özellikler. Cihaz üreticileri, temel cihaz özelliklerini de belirtebilir ya da yer paylaşımlı reklamları kullanabilirsiniz.

Bazı API'lerin sistem API'leri olduğunu ve izinlerini yalnızca sistemin Ayarlar uygulamasının erişebilmesini sağlamak amacıyla kullanın.

Hotspot API'leriyle uygulama geliştirme

Tethering yapılan kablosuz hotspot'un varsayılan uygulaması AOSP tarafından sağlanır Ayarlar uygulaması ancak Soft AP için tüm API'leri uygulamıyor yapılandırma.

Hotspot veya yalnızca yerel hotspot üzerinden tethering'i desteklemek için Uygulama aşağıdaki işlevleri gerçekleştirmelidir:

  1. Şunu kullanarak cihaz özelliklerinden yararlanmak için geri arama kaydedin: Tethered hotspot için WifiManager#registerSoftApCallback veya WifiManager#registerLocalOnlyHotspotSoftApCallback yalnızca yerel hotspot'a dokunun.

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

    • SoftApCallback#onCapabilityChanged: Maksimum sayı da dahil olmak üzere cihaz özellikleri hakkında bilgi sağlar. desteklenen istemci sayısı ve SAE veya ACS'nin desteklenip desteklenmediği gibi bilgileri içerir.
    • SoftApCallback#onInfoChanged: Çalışan Soft AP hakkında bilgi verir (yalnızca bir kez geçerlidir) bant ve frekans bilgileri dahil) gönderilir.
    • SoftApCallback#onConnectedClientsChanged: Bağlı istemcilerin bir listesini sağlar. Her müşteri için MAC adresi. IP bilgilerini almak için, TetheringEventCallback#onClientsChanged geri arama.
    • SoftApCallback#onStateChanged: Etkinleştirildiğinde Soft AP'nin durumuyla ilgili güncellemeler sağlar ve devre dışı bırakıldı.
    • SoftApCallback#onBlockedClientConnecting: Engellenen müşteri bilgilerine aşağıdakilerden birini sağlar engelleme nedenleri: Cihazda izin verilen maksimum izin verilmemesine rağmen müşterinin destekleyebileceği bağla'ya dokunun.

Tethered hotspot'u için:

  1. WifiManager#setSoftApConfiguration yöntemini kullanarak ve bir SoftApConfiguration örneği sağlayarak. Bir araya getirme SoftApConfiguration - SoftApConfiguration.Builder sınıfını kullanır.
  2. Şu adresten tethering yöntemini çağırarak tethering'i başlatın: TetheringManager#startTethering.

Yalnızca yerel hotspot için:

  1. Yalnızca yerel hotspot'u belirli bir yazılım erişim noktası yapılandırmasıyla başlatın. WifiManager#startLocalOnlyHotspot yöntemidir.

İzin verme ve engelleme listelerini uygulama

Tipik bir operatör gereksinimi, kullanıcıya Soft AP ile ilişkilendirilmesine izin verilen cihazları içerir. Birkaç tane mekanizmalar vardır:

  • Yazılım erişim noktası ile ilişkilendirilebilecek maksimum cihaz sayısını sınırlandır SoftApConfiguration.Builder#setMaxNumberOfClients kullanılıyor. Şunları yaptığınızdan emin olun: desteklenen maksimum istemci sayısından daha düşük bir sayı belirtin Cihaza göre değişir. Maksimum sayıyı şuradan alabilirsiniz: SoftApCapability#getMaxSupportedClients
  • İzin ver ve engelleme listelerini kullanarak dinamik kontrol sağlayın:

    • Soft AP'nin varsayılan yapılandırması, tüm cihazların ile ilişkilendirmesini sağlamalısınız. SoftApConfiguration.Builder#setBlockedClientList oynatma listesine eklendi.
    • Soft AP, SoftApConfiguration.Builder#setClientControlByUserEnabled(true), izin verilenler listesi kullanılır.

      • MAC adresi bulunan tüm cihazlar SoftApConfiguration.Builder#setBlockedClientList, şu konumlarda engelleniyor: ilişkilendirmesine yardımcı olur.
      • MAC adresi bulunan tüm cihazlar SoftApConfiguration.Builder#setAllowedClientList için izin veriliyor ilişkilendirmesine yardımcı olur.
      • Diğer tüm cihazlar (MAC adresleri bulunan cihazlar) izin verilenler veya engellenenler listesinde olmayanlar) ilişkilendirme ancak SoftApCallback#onBlockedClientConnecting çağrılır. Böylece, kontrol eden uygulamanın (yani Ayarlar uygulaması) ondan onay istemek gibi bir işlem yapıp ardından cihazı izin verilenler veya engellenenler listesine ekleyin kullanıcının davranışına göre değişir.

    Cihazların izin verilenler listesi işlevini yalnızca cihazda destekleniyor olması gerekir. Cihaz desteğini şuradan doğrulayabilirsiniz: SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)

Uygulama

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

  • Ayarlar uygulaması: AOSP Ayarları uygulaması, SSID ve güvenlik kimlik bilgilerine sahip bir tethering hotspot'udur. Bu kod, olduğu gibi kullanılır veya açıklandığı şekilde ek özellikler sağlamak için değiştirilmiştir Hotspot API'leriyle uygulamalar geliştirme başlıklı makaleye göz atın.

  • Çerçeve: AOSP çerçeve kodu, Google tarafından sunulan tüm işlevleri Hotspot API'leri olan uygulamalar geliştirme başlıklı makalede açıklanmıştır.

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

Özelleştirme

Uygulamayı özelleştirmek için cihaz üreticilerinin şunlardır: packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml:

  • config_wifiFrameworkSoftApShutDownTimeoutMilliseconds: Varsayılan kapatma zaman aşımı aralığı. Yalnızca şu durumlarda geçerlidir: SoftApConfiguration#setAutoShutdownEnabled etkinleştirildi. Geçersiz kılınabilir SoftApConfiguration#setShutdownTimeoutMillis kullanılıyor.
  • config_wifiHardwareSoftapMaxClientCount: Donanım sınırlaması maksimum sayıda desteklenen istemciniz olmalıdır. Maksimum istemci sayısı minimum donanım ve operatör kapasitesi olduğundan kısıtlamalar (belirtilen CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT) bilgileri gösterilir. Nihai sonuç uygulamaya SoftApCapabilities#getMaxSupportedClients ile sağlanır.
  • config_wifiSofapClientForceDisconnectSupported: Cihazın istemcinin bağlantısını kesmeye zorlama olanağı. İzin vermeyi etkinleştirmek için gerekli ve engelleme listelerini kullanabilirsiniz. Kontrol uygulamasına (Ayarlar uygulaması) iletilir. SoftApCapabilities#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)
  • (13'ten itibaren kullanılabilir) config_wifiSoftapPassphraseAsciiEncodableCheck: Yumuşak AP parolasının ASCII olarak kodlanabilir olması gerekip gerekmediği.
  • config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported: Geçerli olup olmadığı sırasında bant ayarının yapılandırmasını otomatik olarak çift banda yükseltmek için yeni cihaz desteklendiğinde bulut yapılandırması geri yükleme.
  • (13'ten itibaren kullanılabilir) config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled: Çerçevenin bant yapılandırmasına otomatik olarak alt bantları ekleyip eklemediği kullanılması anlamına gelir.
  • config_wifiSoftApDynamicCountryCodeUpdateSupported: Dinamik olup olmadığı AP modunda ülke kodu güncellemesi cihazda destekleniyor
  • Kanal desteği: config_wifiSoftap2gChannelList, config_wifiSoftap5gChannelList, config_wifiSoftap6gChannelList ve config_wifiSoftap60gChannelList.
  • Karşılık gelen girişlerin sıfırlanıp sıfırlanmayacağını belirten geri yükleme desteği hotspot yapılandırmasını yeni cihaza geri yüklerken varsayılan olarak kullanılacak: config_wifiSoftapResetChannelConfig, config_wifiSoftapResetHiddenConfig, config_wifiSoftapResetUserControlConfig, config_wifiSoftapResetAutoShutdownTimerConfig config_wifiSoftapResetMaxClientSettingConfig. Bunların Varsayılan olarak true kullanılır. Bu, değerlerin sıfırlandığı anlamına gelir. Bu, aşağıdaki durumlarda yeni cihaz yapılandırmayı desteklemiyordur.
  • 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, bir dizi birim testi ve Uyumluluk Test Paketi (CTS) testi sağlar. deneyin. Hotspot özelliği Tedarikçi Test Paketi (VTS).

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 işlevi otomatik olarak test edebilirsiniz.

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