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:
Bağlı bir hotspot için
WifiManager#registerSoftApCallback
veya yalnızca yerel hotspot içinWifiManager#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çinTetheringEventCallback#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:
WifiManager#setSoftApConfiguration
yöntemini çağırıp birSoftApConfiguration
örneği sağlayarak tethering için esnek AP yapılandırmasını yapılandırın.SoftApConfiguration.Builder
sınıfını kullanarakSoftApConfiguration
oluşturun.TetheringManager#startTethering
adresinde tethering yöntemini çağırarak tethering'i başlatın.
Yalnızca yerel hotspot için:
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.
- MAC adresleri
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.- Soft AP'nin varsayılan yapılandırması, MAC adresleri
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ı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 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
veconfig_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 olaraktrue
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