Android unterstützt WLAN-Hotspots (Soft-AP) einschließlich Tethering über einen WLAN-Hotspot und ausschließlich lokal verfügbare WLAN-Hotspots.
Mit der weichen ZP-Funktion kann Folgendes konfiguriert werden:
- SSID und BSSID
- Sicherheitstyp (einschließlich WPA3)
- Ausgeblendete SSID
- Betriebssystem und Kanal (einschließlich ACS)
- Maximale Anzahl der zulässigen Clients
- Wert für das Zeitlimit für das automatische Herunterfahren
- Mit einer Zulassungsliste und einer Sperrliste können Nutzer verbundene Geräte steuern
- Ebene der MAC-Randomisierung für die AP-BSSID
- 802.11ax und 802.11be
Ob diese Steuerelemente verfügbar sind, hängt von den Gerätefunktionen ab. Android 11 führt APIs ein, um diese Funktionen. Gerätehersteller können auch grundlegende Gerätefunktionen festlegen mithilfe von Overlays.
Beachten Sie, dass einige der APIs System-APIs sind und durch Berechtigungen erteilen, damit nur die App „Einstellungen“ des Systems darauf zugreifen kann.
Anwendungen mit Hotspot-APIs entwickeln
Eine Standardimplementierung eines per Tethering angeschlossenen WLAN-Hotspots wird vom AOSP bereitgestellt. App „Einstellungen“, verwendet jedoch nicht alle APIs für Soft AP Konfiguration.
Um Tethering über einen Hotspot oder einen nur lokalen Hotspot zu unterstützen, muss die App die folgenden Funktionen ausführen:
Registrieren Sie einen Callback, um die Gerätefunktionen mithilfe von
WifiManager#registerSoftApCallback
für einen Tethering-Hotspot oderWifiManager#registerLocalOnlyHotspotSoftApCallback
für reinen lokalen Markt Hotspot.Der
SoftApCallback
-Callback bietet die folgenden Methoden:SoftApCallback#onCapabilityChanged
: Liefert Informationen zu Gerätefunktionen, einschließlich der maximalen Anzahl der unterstützten Clients und ob SAE oder ACS unterstützt wird.SoftApCallback#onInfoChanged
: Stellt Informationen zum ausgeführten Soft-AP bereit (nur einmal gültig) beginnen), einschließlich Informationen zum Band und zur Frequenz.SoftApCallback#onConnectedClientsChanged
: Stellt eine Liste der verbundenen Clients bereit. Für jeden Kunden erhalten Sie die MAC-Adresse. Verwenden Sie zum Abrufen der IP-Informationen die MethodeTetheringEventCallback#onClientsChanged
-Callback.SoftApCallback#onStateChanged
: Liefert Updates zum Status des Soft-Zugangspunkts, sobald er aktiviert wird und deaktiviert.SoftApCallback#onBlockedClientConnecting
: Stellt die blockierten Clientinformationen mit einem der folgenden Elemente bereit Gründe für die Blockierung: Das Gerät hat die maximale Anzahl an Kunden, die unterstützt werden können, oder für die der Kunde nicht explizit autorisiert ist, verbinden können.
Für einen Tethering-Hotspot:
- Konfigurieren Sie die Soft-AP-Konfiguration für das Tethering, indem Sie den
WifiManager#setSoftApConfiguration
und eineSoftApConfiguration
-Instanz angeben. BauenSoftApConfiguration
mit demSoftApConfiguration.Builder
. - Starten Sie das Tethering, indem Sie die Tethering-Methode unter aufrufen.
TetheringManager#startTethering
Für reinen lokalen Hotspot:
- Starten Sie den nur lokalen Hotspot mit einer bestimmten Soft-AP-Konfiguration,
das Aufrufen der
WifiManager#startLocalOnlyHotspot
.
Zulassungs- und Sperrlisten implementieren
Eine typische Anforderung des Mobilfunkanbieters besteht darin, dem Nutzer Kontrollmöglichkeiten über die Geräte, die mit dem Soft AP verknüpft werden können. Es gibt mehrere Mechanismen:
- Maximale Anzahl von Geräten beschränken, die mit dem weichen Zugangspunkt verknüpft werden können
mit
SoftApConfiguration.Builder#setMaxNumberOfClients
. Achten Sie darauf, Geben Sie eine Zahl an, die unter der maximalen Anzahl von unterstützten Clients liegt vom Gerät berechnet wird. Die maximale Anzahl erhalten Sie unterSoftApCapability#getMaxSupportedClients
Dynamische Kontrolle über Zulassungs- und Sperrlisten ermöglichen:
- In der Standardkonfiguration eines Soft-Zugangspunkts können alle Geräte
die mit dem Soft-AP verknüpft sind, außer für Geräte, deren MAC-Adressen
zu
SoftApConfiguration.Builder#setBlockedClientList
hinzugefügt. Wenn der Soft-Zugangspunkt konfiguriert ist mit
SoftApConfiguration.Builder#setClientControlByUserEnabled(true)
, die Zulassungsliste verwendet.- Alle Geräte mit MAC-Adressen
SoftApConfiguration.Builder#setBlockedClientList
wird blockiert von Verknüpfung. - Alle Geräte mit MAC-Adressen
SoftApConfiguration.Builder#setAllowedClientList
sind erlaubt Verknüpfung. - Alle anderen Geräte, d. h. Geräte, deren MAC-Adressen
nicht auf der Zulassungs- oder Sperrliste stehen)
Verknüpfung, aber
SoftApCallback#onBlockedClientConnecting
ist Dadurch kann die steuernde App (d. h. die App "Einstellungen") eine Aktion ausführen, z. B. die Nutzenden um Bestätigung bitten und Setzen Sie das Gerät dann auf die Zulassungsliste oder die Sperrliste. je nach Nutzerverhalten.
- Alle Geräte mit MAC-Adressen
Die Zulassungsliste kann nur verwendet werden, wenn die auf dem Gerät unterstützt werden. Sie können die Geräteunterstützung mit
SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)
- In der Standardkonfiguration eines Soft-Zugangspunkts können alle Geräte
die mit dem Soft-AP verknüpft sind, außer für Geräte, deren MAC-Adressen
zu
Implementierung
Um Tethering über einen Hotspot oder einen nur lokalen Hotspot zu unterstützen, Gerätehersteller müssen Einstellungen, Framework und HAL/Firmware-Unterstützung:
App „Einstellungen“:Die App „AOSP Settings“ bietet eine grundlegende Konfiguration für die einen Tethering-Hotspot mit SSID und Sicherheitsanmeldedaten. Dieser Code kann wie sie verwendet oder modifiziert werden, um wie beschrieben zusätzliche Funktionen bereitzustellen. in Anwendungen mit Hotspot-APIs entwickeln.
Framework:Der AOSP-Frameworkcode unterstützt alle Funktionen. wie unter Apps mit Hotspot-APIs entwickeln beschrieben.
HAL/Firmware für Hotspot: Entweder das HIDL iHostapd.hal Version 1.2 oder höher oder die AIDL IHostapd.aidl.
Personalisierung
Um die Implementierung anzupassen, sollten Gerätehersteller die
folgenden Overlays und Mobilfunkanbieter-Konfigurationen, die in
packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml
:
config_wifiFrameworkSoftApShutDownTimeoutMilliseconds
: Der Standardwert Zeitüberschreitungsintervall für das Herunterfahren. Nur gültig, wennSoftApConfiguration#setAutoShutdownEnabled
ist aktiviert. Kann überschrieben werden mitSoftApConfiguration#setShutdownTimeoutMillis
.config_wifiHardwareSoftapMaxClientCount
: Die Hardwareeinschränkung für Maximale Anzahl unterstützter Clients. Die maximale Anzahl von Clients die das Gerät unterstützt, ist die Mindestanzahl an Hardware- und Einschränkungen (definiert durchCarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT
. Das Endergebnis wird der App mitSoftApCapabilities#getMaxSupportedClients
bereitgestellt.config_wifiSofapClientForceDisconnectSupported
: Gibt an, ob das Gerät die Möglichkeit, das Trennen eines Clients zu erzwingen. Zum Aktivieren des Zulassens erforderlich und Blockierungslisten. Wird der steuernden App (App „Einstellungen“) überSoftApCapabilities#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)
- (Erhältlich ab 13)
config_wifiSoftapPassphraseAsciiEncodableCheck
: Gibt an, ob die weiche AP-Passphrase für ASCII-Codierung erforderlich ist. config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported
: Gibt an, ob oder nicht , um die Konfiguration der Bandeinstellung während der Ausführungsphase die Wiederherstellung der Cloud-Konfiguration, wenn ein neues Gerät unterstützt wird.- (Erhältlich ab 13)
config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled
: Gibt an, ob das Framework die unteren Bänder automatisch an die Bandkonfiguration anfügt um eine Koexistenz zu vermeiden. config_wifiSoftApDynamicCountryCodeUpdateSupported
: gibt an, ob dynamisch oder nicht Die Aktualisierung des Ländercodes im AP-Modus wird auf dem Gerät unterstützt.- Kanalunterstützung:
config_wifiSoftap2gChannelList
,config_wifiSoftap5gChannelList
,config_wifiSoftap6gChannelList
undconfig_wifiSoftap60gChannelList
. - Unterstützung für das Wiederherstellen des Angebens, ob die entsprechenden Einträge zurückgesetzt werden
beim Wiederherstellen der Hotspot-Konfiguration auf einem neuen Gerät auf die Standardeinstellung:
config_wifiSoftapResetChannelConfig
,config_wifiSoftapResetHiddenConfig
,config_wifiSoftapResetUserControlConfig
,config_wifiSoftapResetAutoShutdownTimerConfig
,config_wifiSoftapResetMaxClientSettingConfig
Diese sind auf Standardmäßigtrue
, d. h., die Werte werden zurückgesetzt. Das ist wichtig, wenn unterstützt das neue Gerät die Konfiguration nicht. - Hardwarefunktionen:
<ph type="x-smartling-placeholder">
- </ph>
config_wifi_softap_acs_supported
config_wifi_softap_sae_supported
- (Erhältlich ab 13)
config_wifiSoftapOweTransitionSupported
- (Erhältlich ab 13)
config_wifiSoftapOweSupported
config_wifi_softap_ieee80211ac_supported
config_wifiSoftapIeee80211axSupported
- (Erhältlich ab 13)
config_wifiSoftapIeee80211beSupported
config_wifiSoftapMacAddressCustomizationSupported
config_wifiSoftapHeSuBeamformerSupported
config_wifiSoftapHeSuBeamformeeSupported
config_wifiSoftapHeMuBeamformerSupported
config_wifiSoftapHeTwtSupported
config_wifiSoftap24ghzSupported
config_wifiSoftap5ghzSupported
config_wifiSoftap6ghzSupported
config_wifiSoftap60ghzSupported
config_wifiSoftapAcsIncludeDfs
Zertifizierungsstufe
Android bietet eine Reihe von Unit- und Compatibility Test Suite-Tests (CTS). um die Hotspot-Funktion zu überprüfen. Die Hotspot-Funktion kann auch mit die Vendor Test Suite (VTS).
Einheitentests
Prüfen Sie das Hotspot-Paket mit den folgenden Tests.
Diensttests:
atest packages/modules/Wifi/service/tests/wifitests/
Tests für Manager:
atest packages/modules/Wifi/framework/tests/
CTS-Tests (Compatibility Test Suite)
Verwenden Sie CTS-Tests, um die Hotspot-Funktion zu prüfen. CTS erkennt, wenn die Funktion aktiviert ist, und schließt automatisch zugehöriger Tests.
Führen Sie folgenden Befehl aus, um die CTS-Tests auszulösen:
atest android.net.wifi.cts.WifiManagerTest
Anbieter-Test-Suite (VTS)
Wenn die HIDL-Schnittstelle implementiert ist, führe folgenden Befehl aus:
atest VtsHalWifiHostapdV1_2Target
Wenn die AIDL-Schnittstelle implementiert ist, führen Sie Folgendes aus:
atest VtsHalHostapdTargetTest