Android est compatible avec les points d'accès Wi-Fi (Soft AP), y compris le partage de connexion. via un point d'accès Wi-Fi et des points d'accès Wi-Fi locaux uniquement.
La fonctionnalité de point d'accès logiciel permet de configurer les éléments suivants:
- SSID et BSSID
- Type de sécurité (y compris WPA3)
- SSID masqué
- Bande de fonctionnement et canal (y compris ACS)
- Nombre maximal de clients autorisés
- Valeur du délai d'arrêt automatique
- Ajouter des listes d'autorisation et de blocage pour permettre aux utilisateurs de contrôler les appareils associés
- Niveau de randomisation MAC pour le BSSID du point d'accès
- 802.11ax et 802.11be
La disponibilité de ces commandes dépend des capacités de l'appareil. Android 11 introduit des API pour obtenir ces des fonctionnalités. Les fabricants d'appareils peuvent également spécifier les capacités de base des appareils. à l'aide de superpositions.
Notez que certaines API sont des API système dont l'accès est limité via afin que seule l'application Paramètres du système puisse y accéder.
Développer des applications avec les API des points d'accès
Une implémentation par défaut d'un point d'accès Wi-Fi partagé est fournie par l'AOSP Paramètres de l'application, mais elle n'utilise pas toutes les API pour Soft AP. configuration.
Pour permettre le partage de connexion via un point d'accès ou un point d'accès local uniquement : L'application doit remplir les fonctions suivantes:
Enregistrez un rappel pour obtenir les fonctionnalités de l'appareil à l'aide de
WifiManager#registerSoftApCallback
pour un point d'accès partagéWifiManager#registerLocalOnlyHotspotSoftApCallback
pour une session locale uniquement point d'accès.Le rappel
SoftApCallback
fournit les méthodes suivantes:SoftApCallback#onCapabilityChanged
: Fournit des informations sur les fonctionnalités de l'appareil, y compris les capacités maximales le nombre de clients compatibles, et si SAE ou ACS sont pris en charge.SoftApCallback#onInfoChanged
: Fournit des informations sur le point d'accès partiel en cours d'exécution (valide une seule fois y compris des informations sur la bande et la fréquence.SoftApCallback#onConnectedClientsChanged
: Fournit la liste des clients connectés. Pour chaque client, vous pouvez obtenir l'adresse MAC. Pour obtenir les informations sur l'adresse IP, utilisez le RappelTetheringEventCallback#onClientsChanged
.SoftApCallback#onStateChanged
: Fournit des mises à jour sur l'état du point d'accès logiciel à mesure qu'il est activé et est désactivé.SoftApCallback#onBlockedClientConnecting
: Fournit les informations sur le client bloqué avec l'un des éléments suivants : motifs de blocage: l'appareil a atteint le nombre maximal qu'il peut prendre en charge ou si le client n'est pas explicitement autorisé se connectent.
Pour un point d'accès partagé:
- Configurez la configuration du point d'accès logiciel pour le partage de connexion en appelant la
WifiManager#setSoftApConfiguration
et en fournissant une instanceSoftApConfiguration
. ConstruireSoftApConfiguration
à l'aide deSoftApConfiguration.Builder
. - Démarrez le partage de connexion en appelant la méthode de partage à
TetheringManager#startTethering
Pour un point d'accès local uniquement:
- Démarrez le point d'accès local uniquement avec une configuration du point d'accès logiciel spécifique en
en appelant la méthode
WifiManager#startLocalOnlyHotspot
.
Implémenter des listes d'autorisation et de blocage
En règle générale, les opérateurs doivent permettre à l'utilisateur de contrôler les périphériques qui sont autorisés à s'associer au point d'accès logiciel. Il existe plusieurs différents mécanismes:
- Limiter le nombre maximal d'appareils pouvant être associés au point d'accès logiciel
avec
SoftApConfiguration.Builder#setMaxNumberOfClients
. Veillez à Spécifiez un nombre inférieur au nombre maximal de clients pris en charge par l'appareil. Vous pouvez obtenir le nombre maximalSoftApCapability#getMaxSupportedClients
Offrez un contrôle dynamique à l'aide de listes d'autorisation et de blocage:
- La configuration par défaut d'un point
d'accès permet à tous les appareils
associer au point d'accès logiciel, sauf pour
les appareils dont les adresses MAC sont
ajouté à
SoftApConfiguration.Builder#setBlockedClientList
. Si le point d'accès soft est configuré avec
SoftApConfiguration.Builder#setClientControlByUserEnabled(true)
, la liste d'autorisation est utilisée.- Tous les appareils dont l'adresse MAC se trouve dans
SoftApConfiguration.Builder#setBlockedClientList
ne sont pas autorisés à l'association. - Tous les appareils dont l'adresse MAC se trouve dans
SoftApConfiguration.Builder#setAllowedClientList
sont autorisés l'association. - Tous les autres appareils (c'est-à-dire ceux dont l'adresse MAC
qui ne figurent pas sur la liste d'autorisation ou de blocage) sont bloqués.
association, mais
SoftApCallback#onBlockedClientConnecting
est ce qui permet à l'application de contrôle (c'est-à-dire l'application Paramètres) de effectuer une action, par exemple demander confirmation à l'utilisateur et puis en ajoutant l'appareil à la liste d'autorisation ou de blocage en fonction du comportement de l'utilisateur.
- Tous les appareils dont l'adresse MAC se trouve dans
Notez que les appareils ne peuvent utiliser la fonctionnalité de liste d'autorisation que compatibles avec l'appareil. Vous pouvez vérifier la compatibilité de votre appareil avec
SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)
- La configuration par défaut d'un point
d'accès permet à tous les appareils
associer au point d'accès logiciel, sauf pour
les appareils dont les adresses MAC sont
ajouté à
Implémentation
Pour permettre le partage de connexion via un point d'accès ou pour prendre en charge un point d'accès local uniquement : les fabricants d'appareils doivent fournir l'application Paramètres, le framework et compatibilité HAL/micrologiciel:
Application Paramètres:l'application Paramètres d'AOSP fournit une base de référence pour la configuration un point d'accès de partage de connexion avec le SSID et les identifiants de sécurité. Ce code peut être utilisées telles quelles ou modifiées pour fournir des capacités supplémentaires telles que dans Développer des applications avec des API de point d'accès.
Framework:le code du framework AOSP est compatible avec toutes les fonctionnalités décrites dans Développer des applications avec des API de point d'accès.
HAL/micrologiciel pour le point d'accès: Soit le HIDL IHostapd.hal version 1.2 ou ultérieure, ou AIDL IHostapd.aidl
Personnalisation
Pour personnaliser l'implémentation, les fabricants d'appareils doivent configurer
des superpositions et des configurations d'opérateurs, décrites dans
packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml
:
config_wifiFrameworkSoftApShutDownTimeoutMilliseconds
: valeur par défaut délai avant expiration de l'arrêt. Valide uniquement siSoftApConfiguration#setAutoShutdownEnabled
est activé. Peut être ignoré avecSoftApConfiguration#setShutdownTimeoutMillis
.config_wifiHardwareSoftapMaxClientCount
: limitation matérielle pour le nombre maximal de clients compatibles. Le nombre maximal de clients pris en charge par l'appareil correspond au minimum du matériel et de l'opérateur (spécifiées parCarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT
). Le résultat final est fourni à l'application avecSoftApCapabilities#getMaxSupportedClients
.config_wifiSofapClientForceDisconnectSupported
: indique si l'appareil a la possibilité de forcer la déconnexion d’un client. Obligatoire pour activer l'autorisation et les listes de blocage. Elle est communiquée à l'application de contrôle (application Paramètres) viaSoftApCapabilities#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)
- (À partir de 13)
config_wifiSoftapPassphraseAsciiEncodableCheck
: Indique si la phrase secrète du point d'accès logiciel doit être encodable en ASCII. config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported
: indique si oui ou non pour passer automatiquement à la configuration double bande restaurer la configuration cloud lorsqu'un nouvel appareil est pris en charge.- (À partir de 13)
config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled
: Indique si le framework ajoute automatiquement des bandes inférieures à la configuration des bandes pour éviter la gestion de la coexistence. config_wifiSoftApDynamicCountryCodeUpdateSupported
: dynamique ou non la mise à jour du code pays en mode AP est prise en charge sur l'appareil- Canal disponible:
config_wifiSoftap2gChannelList
,config_wifiSoftap5gChannelList
,config_wifiSoftap6gChannelList
etconfig_wifiSoftap60gChannelList
- Restaurer la prise en charge indiquant si les entrées correspondantes sont réinitialisées
par défaut lors de la restauration de la configuration du point d'accès sur un nouvel appareil:
config_wifiSoftapResetChannelConfig
,config_wifiSoftapResetHiddenConfig
,config_wifiSoftapResetUserControlConfig
,config_wifiSoftapResetAutoShutdownTimerConfig
config_wifiSoftapResetMaxClientSettingConfig
Notez qu'ils sont définis surtrue
par défaut, ce qui signifie que les valeurs sont réinitialisées. Ceci est essentiel si le nouvel appareil n'est pas compatible avec la configuration. - Capacités matérielles:
<ph type="x-smartling-placeholder">
- </ph>
config_wifi_softap_acs_supported
config_wifi_softap_sae_supported
- (À partir de 13)
config_wifiSoftapOweTransitionSupported
- (À partir de 13)
config_wifiSoftapOweSupported
config_wifi_softap_ieee80211ac_supported
config_wifiSoftapIeee80211axSupported
- (À partir de 13)
config_wifiSoftapIeee80211beSupported
config_wifiSoftapMacAddressCustomizationSupported
config_wifiSoftapHeSuBeamformerSupported
config_wifiSoftapHeSuBeamformeeSupported
config_wifiSoftapHeMuBeamformerSupported
config_wifiSoftapHeTwtSupported
config_wifiSoftap24ghzSupported
config_wifiSoftap5ghzSupported
config_wifiSoftap6ghzSupported
config_wifiSoftap60ghzSupported
config_wifiSoftapAcsIncludeDfs
Validation
Android fournit un ensemble de tests unitaires et de tests de la suite de tests de compatibilité (CTS) pour valider la fonctionnalité de zone cliquable. La fonctionnalité de point d'accès peut également être testée la suite de test fournisseur (VTS).
Tests unitaires
Vérifiez le package de point d'accès à l'aide des tests suivants.
Tests du service:
atest packages/modules/Wifi/service/tests/wifitests/
Tests du responsable:
atest packages/modules/Wifi/framework/tests/
Tests de la suite de tests de compatibilité (CTS)
Utilisez les tests CTS pour valider la fonctionnalité de point d'accès. CTS détecte quand la fonctionnalité est activée et inclut automatiquement les les tests associés.
Pour déclencher les tests CTS, exécutez la commande suivante:
atest android.net.wifi.cts.WifiManagerTest
Suite de test pour les fournisseurs (VTS)
Si l'interface HIDL est implémentée, exécutez la commande suivante:
atest VtsHalWifiHostapdV1_2Target
Si l'interface AIDL est implémentée, exécutez la commande suivante:
atest VtsHalHostapdTargetTest