Android, kablosuz hotspot üzerinden tethering ve yalnızca yerel kablosuz hotspot'lar da dahil olmak üzere kablosuz hotspot (Soft AP) desteği sunar.
Sanal 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 kapanma zaman aşımı değeri
- Kullanıcının ilişkili cihazları kontrol etmesine izin vermek için izin verilenler listesi ve engellenenler listesi
- AP BSSID'si için MAC rastgeleleştirme düzeyi
- 802.11ax ve 802.11be
Bu denetimlerin kullanılabilirliği cihaz özellikleri tarafından belirlenir. 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'si olduğunu ve yalnızca sistemin Ayarlar uygulamasının erişebilmesi için izinlerle kısıtlandığını unutmayın.
Hotspot API'leriyle uygulama geliştirme
AOSP Ayarlar uygulaması, bağlı kablosuz hotspot'un varsayılan uygulamasını sağlar ancak 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 gerçekleştirmesi gerekir:
Tethered hotspot için
WifiManager#registerSoftApCallback
, yalnızca yerel hotspot içinWifiManager#registerLocalOnlyHotspotSoftApCallback
kullanarak cihaz özelliklerini almak üzere geri çağırma kaydı oluşturun.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 ç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 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 nedenlerinden biriyle birlikte sağlar: Cihaz, destekleyebileceği maksimum istemci sayısına ulaştı veya istemci, bağlanmak için açıkça yetkilendirilmedi.
Tethering yapılan hotspot için:
WifiManager#setSoftApConfiguration
yöntemini çağırıp birSoftApConfiguration
örneği sağlayarak kablosuz AP yapılandırmasını tethering için yapılandırın.SoftApConfiguration.Builder
sınıfını kullanarakSoftApConfiguration
oluşturun.TetheringManager#startTethering
adresindeki 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 verilenler ve engellenenler listelerini uygulama
Tipik bir operatör koşulu, kullanıcıya yumuşak 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 tarafından desteklenen maksimum istemci sayısından daha düşük bir sayı belirtmeyi unutmayın. Maksimum sayıyıSoftApCapability#getMaxSupportedClients
kaynağından öğrenebilirsiniz.İzin verilenler ve engellenenler 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ı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ın) ilişkilendirilmesi engellenir ancak
SoftApCallback#onBlockedClientConnecting
çağrılır. Bu çağrı, kontrol eden uygulamanın (yani Ayarlar uygulamasının) işlem yapmasına olanak tanır. Örneğin, kullanıcıdan onay istenir ve ardından cihaz, kullanıcının davranışına bağlı olarak izin verilenler veya engellenenler listesine eklenir.
- MAC adresleri
Cihazların izin verilenler listesi işlevini yalnızca cihazda destekleniyorsa kullanabileceğini unutmayın.
SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)
'yi 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ı, tethering hotspot'u SSID ve güvenlik kimlik bilgileriyle yapılandırma için temel bir referans sağlar. Bu kod olduğu gibi kullanılabilir veya Hotspot API'leri ile uygulama geliştirme bölümünde açıklandığı gibi ek özellikler sağlamak için 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 bir 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 değeridir (CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT
ile belirtilir). Nihai sonuç,SoftApCapabilities#getMaxSupportedClients
ile uygulamaya sağlanır.config_wifiSofapClientForceDisconnectSupported
: Cihazın, istemcinin bağlantısını zorla kesme özelliğinin olup olmadığı. İzin verilenler ve engellenenler listelerini etkinleştirmek için gereklidir.SoftApCapabilities#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)
üzerinden kontrol eden uygulamaya (Ayarlar uygulaması) iletilir.- (13'ten itibaren kullanılabilir)
config_wifiSoftapPassphraseAsciiEncodableCheck
: Yumuşak AP parolasının ASCII kodlanabilir olması gerekip gerekmediği. config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported
: Yeni bir cihaz desteklendiğinde bulut yapılandırması geri yükleme işlemi sırasında bant ayar yapılandırmasını otomatik olarak çift bantlara yükseltip yükseltmeyeceğinizi belirtir.- (13 sürümünden itibaren kullanılabilir)
config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled
: Çerçevenin, birlikte var olma işlemini önlemek için bant yapılandırmasına otomatik olarak daha düşük bantlar ekleyip eklemediğini belirtir. 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ılan ayarlara 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'ten 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 Compatibility Test Suite (CTS) testi sağlar. Hotspot özelliği, Tedarikçi Testi 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 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 ne zaman etkinleştirildiğini algılar ve ilişkili testleri otomatik olarak içerir.
CTS testlerini tetiklemek için şu komutu çalıştırın:
atest android.net.wifi.cts.WifiManagerTest
Tedarikçi Test Paketi (VTS)
HIDL arayüzü uygulanmışsa şunları çalıştırın:
atest VtsHalWifiHostapdV1_2Target
AIDL arayüzü uygulanmışsa şunları çalıştırın:
atest VtsHalHostapdTargetTest