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ım erişim noktası ö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.
Hotspot API'leriyle uygulama geliştirme
Bağlı Wi-Fi hotspot'unun varsayılan uygulaması Android Açık Kaynak Projesi (AOSP) Ayarlar uygulaması tarafından sağlanır 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#registerLocalOnlyHotspotSoftApCallbackkullanarak cihaz özelliklerini almak üzere geri arama kaydettirin.SoftApCallbackgeri ç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#onClientsChangedgeri ç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ının kesilme nedenini öğrenebilirsiniz.
Tethering ile bağlantı noktası için:
WifiManager#setSoftApConfigurationyöntemini çağırıpSoftApConfigurationörneği sağlayarak tethering için geçici erişim noktası yapılandırmasını ayarlayın.SoftApConfiguration.Buildersınıfını kullanarakSoftApConfigurationoluşturun.TetheringManager#startTetheringadresinde tethering yöntemini çağırarak tethering'i başlatın.
Yalnızca yerel hotspot için:
WifiManager#startLocalOnlyHotspotyö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#setMaxNumberOfClientskullanarak 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#getMaxSupportedClientsadresinden 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#setBlockedClientListiçinde olan tüm cihazların ilişkilendirilmesi engellenir. - MAC adresleri
SoftApConfiguration.Builder#setAllowedClientListiç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 izin verilir. Örneğin, kullanıcıdan onay istenir ve ardından cihaz, kullanıcının davranışına bağlı olarak izin verilenler listesine veya engellenenler listesine eklenir.
- 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 bir ayarlar uygulaması, çerçeve ve HAL/donanım yazılımı desteği sağlamalıdır:
Ayarlar uygulaması: Android Açık Kaynak Projesi (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 Developing apps with hotspot APIs (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.hal1.2 veya sonraki bir sürümü ya da AIDLIHostapd.aidl.
Özelleştirme
Uygulamayı özelleştirmek için cihaz üreticilerinin, packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml dokümanında açıklanan aşağıdaki yer paylaşımlarını ve operatör yapılandırmalarını ayarlaması önerilir:
config_wifiFrameworkSoftApShutDownTimeoutMilliseconds: Varsayılan kapatma zaman aşımı aralığı. YalnızcaSoftApConfiguration#setAutoShutdownEnabledetkinse geçerlidir.SoftApConfiguration#setShutdownTimeoutMilliskullanı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_COUNTile belirtilir) minimum değeridir. Sonuç,SoftApCapabilities#getMaxSupportedClientsile birlikte 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_wifiSoftap6gChannelListveconfig_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 olaraktrueolarak 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_supportedconfig_wifi_softap_sae_supported- (13 yaşından itibaren kullanılabilir)
config_wifiSoftapOweTransitionSupported - (13 yaşından itibaren kullanılabilir)
config_wifiSoftapOweSupported config_wifi_softap_ieee80211ac_supportedconfig_wifiSoftapIeee80211axSupported- (13 yaşından itibaren kullanılabilir)
config_wifiSoftapIeee80211beSupported config_wifiSoftapMacAddressCustomizationSupportedconfig_wifiSoftapHeSuBeamformerSupportedconfig_wifiSoftapHeSuBeamformeeSupportedconfig_wifiSoftapHeMuBeamformerSupportedconfig_wifiSoftapHeTwtSupportedconfig_wifiSoftap24ghzSupportedconfig_wifiSoftap5ghzSupportedconfig_wifiSoftap6ghzSupportedconfig_wifiSoftap60ghzSupportedconfig_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.WifiManagerTestTedarikçi Test Paketi (VTS)
HIDL arayüzü uygulanmışsa şunu çalıştırın:
atest VtsHalWifiHostapdV1_2TargetAIDL arayüzü uygulanmışsa şunu çalıştırın:
atest VtsHalHostapdTargetTest