Android, kablosuz hotspot (Soft AP) için destek sunar. Bu destek, kablosuz hotspot üzerinden tethering ve yalnızca yerel kablosuz hotspot'ları içerir.
Yazılımsal 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ın kullanıcı kontrolüne izin vermek için izin verilenler listesi ve engellenenler listesi
- AP BSSID'si için MAC rastgele seçimi düzeyi
- 802.11ax ve 802.11be
Bu kontrollerin kullanılabilirliği cihaz özelliklerine bağlıdır. Android 11, bu özellikleri elde etmek için API'ler sunar. Cihaz üreticileri, yer paylaşımlarını kullanarak temel cihaz özelliklerini de belirtebilir.
API'lerin bazılarının sistem API'leri olduğunu ve yalnızca sistemin Ayarlar uygulaması erişebilsin diye izinler aracılığıyla kısıtlandığını unutmayın.
Hotspot API'leriyle uygulama geliştirme
AOSP Ayarlar uygulaması, bağlı Wi-Fi hotspot'un varsayılan bir uygulamasını sağlar ancak bu uygulama, Soft AP yapılandırması için tüm API'leri kullanmaz.
Hotspot veya yalnızca yerel hotspot üzerinden tethering'i desteklemek için uygulamanın aşağıdaki işlevleri yerine getirmesi gerekir:
Bağlı hotspot için
WifiManager#registerSoftApCallback
, yalnızca yerel hotspot içinWifiManager#registerLocalOnlyHotspotSoftApCallback
kullanarak cihaz özelliklerini almak üzere geri arama kaydettirin.SoftApCallback
geri çağırma işlevi aşağıdaki yöntemleri sağlar:SoftApCallback#onCapabilityChanged
: Maksimum sayıda desteklenen istemci ve SAE veya ACS'nin desteklenip desteklenmediği 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ıktan sonra geçerlidir).SoftApCallback#onConnectedClientsChanged
: Bağlı istemcilerin listesini sağlar. Her istemci için MAC adresini alabilirsiniz. IP bilgilerini almak içinTetheringEventCallback#onClientsChanged
geri çağırmasını kullanın.SoftApCallback#onStateChanged
: Etkinleştirilip devre dışı bırakıldığında Soft AP'nin durumuyla ilgili güncellemeler sağlar.SoftApCallback#onBlockedClientConnecting
: Engellenen istemci bilgilerini, engelleme için aşağıdaki nedenlerden biriyle birlikte sağlar: Cihaz, destekleyebileceği maksimum istemci sayısına ulaştı veya istemcinin bağlanmak için açıkça yetkisi yok.SoftApCallback#onClientsDisconnected
: Bağlantısı kesilen istemcilerin listesini sağlar. Her istemci için bağlantı kesilme nedenini öğrenebilirsiniz.
Tethering ile bağlantı noktası için:
WifiManager#setSoftApConfiguration
yöntemini çağırıpSoftApConfiguration
örneği sağlayarak tethering için geçici erişim noktası yapılandırmasını ayarlayı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 yazılım AP yapılandırmasıyla başlatın.
İzin verilenler ve engellenenler listelerini uygulama
Tipik bir operatör şartı, kullanıcıya Soft AP'ye bağlanmasına izin verilen cihazların kontrollerini sağlamaktır. Bunu yapmanın birkaç yolu vardır:
SoftApConfiguration.Builder#setMaxNumberOfClients
kullanarak geçici AP'ye ilişkilendirilebilecek maksimum cihaz sayısını sınırlayın. Cihaz tarafından desteklenen 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:
- Yazılımsal erişim noktasının varsayılan yapılandırması, MAC adresleri
SoftApConfiguration.Builder#setBlockedClientList
'ya eklenen cihazlar hariç tüm cihazların yazılımsal erişim noktasıyla ilişkilendirilmesine olanak tanır. Yazılım erişim noktası
SoftApConfiguration.Builder#setClientControlByUserEnabled(true)
ile yapılandırılmışsa izin verilenler listesi kullanılır.- MAC adresleri
SoftApConfiguration.Builder#setBlockedClientList
içinde 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 (yani MAC adresleri izin verilenler veya engellenenler listesinde olmayan cihazlar) ilişkilendirilmesi engellenir ancak
SoftApCallback#onBlockedClientConnecting
çağrılır. Bu sayede, kontrol eden uygulamanın (yani Ayarlar uygulaması) bir işlem yapmasına (ör. kullanıcıdan onay isteme ve ardından kullanıcının davranışına bağlı olarak cihazı izin verilenler listesine veya engellenenler listesine ekleme) izin verilir.
- MAC adresleri
Cihazlar, yalnızca cihazda destekleniyorsa izin verilenler listesi işlevini kullanabilir. Cihaz desteğini
SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)
kullanarak doğrulayabilirsiniz.- Yazılımsal erişim noktasının varsayılan yapılandırması, MAC adresleri
Uygulama
Cihaz üreticileri, hotspot üzerinden tethering'i veya yalnızca yerel hotspot'u desteklemek için Ayarlar uygulaması, çerçeve ve HAL/donanım yazılımı desteği sağlamalıdır:
Ayarlar uygulaması: AOSP Ayarlar uygulaması, SSID ve güvenlik kimlik bilgileriyle tethering hotspot'u yapılandırmak için temel bir yapı sağlar. Bu kod, olduğu gibi kullanılabilir veya Hotspot API'leri ile uygulama geliştirme başlıklı makalede açıklandığı gibi ek özellikler sağlamak için 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.
Hotspot için HAL/donanım yazılımı: HIDL
IHostapd.hal
1.2 veya sonraki bir sürümü ya da AIDLIHostapd.aidl
.
Özelleştirme
Uygulamayı özelleştirmek için cihaz üreticileri, packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml
dokümanında açıklanan aşağıdaki katmanları 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ıyla ilgili donanım sınırlaması. Cihazın desteklediği maksimum istemci sayısı, donanım ve operatör kısıtlamalarının (CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT
ile belirtilir) minimum değeridir. Sonuç,SoftApCapabilities#getMaxSupportedClients
ile uygulamaya sağlanır.config_wifiSofapClientForceDisconnectSupported
: Cihazın, istemcinin bağlantısını zorla kesme özelliği olup olmadığı. İzin verilenler ve engellenenler listelerinin etkinleştirilmesi için gereklidir.SoftApCapabilities#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)
aracılığıyla kontrol eden uygulamaya (Ayarlar uygulaması) iletilir.- (13'ten itibaren kullanılabilir)
config_wifiSoftapPassphraseAsciiEncodableCheck
: Yazılım AP parolası için ASCII kodlaması 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ği.- (13 yaşından itibaren kullanılabilir)
config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled
: Çerçevenin, birlikte var olma işleminden kaçınmak için bant yapılandırmasına otomatik olarak daha düşük 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
. - Hotspot yapılandırması yeni bir cihaza geri yüklenirken 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 işlem çok önemlidir. - Donanım özellikleri:
config_wifi_softap_acs_supported
config_wifi_softap_sae_supported
- (13 yaşından itibaren kullanılabilir)
config_wifiSoftapOweTransitionSupported
- (13 yaşından itibaren kullanılabilir)
config_wifiSoftapOweSupported
config_wifi_softap_ieee80211ac_supported
config_wifiSoftapIeee80211axSupported
- (13 yaşından 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, Vendor Test Suite (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 testleri:
atest packages/modules/Wifi/framework/tests/
Compatibility Test Suite (CTS) testleri
Hotspot özelliğini doğrulamak için CTS testlerini kullanın. CTS, özelliğin etkinleştirildiğini algıladığında ilişkili testleri otomatik olarak dahil eder.
CTS testlerini tetiklemek için şunu çalıştırın:
atest android.net.wifi.cts.WifiManagerTest
Tedarikçi Test Paketi (VTS)
HIDL arayüzü uygulanmışsa şunu çalıştırın:
atest VtsHalWifiHostapdV1_2Target
AIDL arayüzü uygulanmışsa şunu çalıştırın:
atest VtsHalHostapdTargetTest