La Wi-Fi Aware la fonctionnalité ajoutée dans Android 8.0 permet aux appareils pris en charge de découvrir, de se connecter, et de la plage (ajoutée sous Android 9) les uns aux autres, en utilisant le protocole Wi-Fi Aware sans accéder à Internet ni à un réseau mobile. Ce basée sur la Wi-Fi Alliance (WFA) Spécification Wi-Fi Aware (versions 2.0, 3.0, 3.1 et 4.0), qui permet de partager facilement des données à haut débit parmi les appareils et les applications vérifiés qui ne sont pas hors réseau.
Exemples et source
Pour utiliser cette fonctionnalité, les fabricants d'appareils doivent implémenter la HAL du fournisseur Wi-Fi. Sur Android 14 et versions ultérieures, l'interface HAL du fournisseur est définie à l'aide d'AIDL. Pour Android 13 et versions antérieures, l'interface HAL du fournisseur est définie à l'aide de HIDL.
Suivez l'interface du Wi-Fi pour utiliser la fonctionnalité Wi-Fi Aware. En fonction de l'interface implémentée, plusieurs options s'offrent à vous:
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.2
ou version ultérieure
Reportez-vous à l'ancien HAL Wi-Fi pour voir le lien avec le Interfaces AIDL et HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_nan.h.
Implémentation
Les fabricants d'appareils doivent fournir une compatibilité avec le framework et le micrologiciel HAL/micrologiciel:
- Cadre:
<ph type="x-smartling-placeholder">
- </ph>
- Code AOSP
- Activer Aware: nécessite à la fois un flag de fonctionnalité et un indicateur de compilation
- Compatibilité HAL Wi-Fi Aware (NAN) (ce qui implique la compatibilité avec le micrologiciel)
Pour implémenter cette fonctionnalité, les fabricants d'appareils implémentent l'interface Wi-Fi et activer deux indicateurs de fonctionnalité:
Dans
BoardConfig.mk
ouBoardConfig-common.mk
situés dansdevice/<oem>/<device>
, ajoutez l'indicateur suivant:WIFI_HIDL_FEATURE_AWARE := true
Dans le fichier
device.mk
situé dansdevice/<oem>/<device>
, modifiez le Variable d'environnementPRODUCT_COPY_FILES
pour inclure la compatibilité avec le Wi-Fi Fonctionnalité Aware:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
Wi-Fi Aware inclut la prise en charge d'appareils pairs utilisant le protocole IEEE 802.11mc, également appelée délai aller-retour (DAR). Cette sous-fonctionnalité de Wi-Fi Aware est sous réserve que l'appareil prenne en charge la fonctionnalité de texte en temps réel Wi-Fi, c'est-à-dire qu'il nécessite l'appareil doit être compatible avec le Wi-Fi Aware et le DAR Wi-Fi. Pour en savoir plus, consultez Texte en temps réel Wi-Fi :
Sinon, tout ce qui est requis pour cette fonctionnalité est inclus dans AOSP.
L'option WIFI_HIDL_FEATURE_AWARE
est ignorée si le
WIFI_HAL_INTERFACE_COMBINATIONS
est spécifié. Pour en savoir plus, consultez
Simultanéité multi-interface Wi-Fi :
Randomisation MAC
Android nécessite l'adresse MAC de la détection Wi-Fi (NMI) et des données d'interfaces réseau (NDP) de manière aléatoire et non identiques à l'adresse MAC réelle de l'appareil. Les adresses MAC doivent être:
- Chaque fois que Wi-Fi Aware est activé ou réactivé, les résultats sont aléatoires.
Lorsque le service Wi-Fi Aware est activé, l'adresse MAC doit passer de façon aléatoire à une fréquence un intervalle configuré par Paramètre
NanConfigRequest.macAddressRandomizationIntervalSec
. Ce configuré par défaut par le framework sur 30 minutes.
Suspendre et réactiver
Sur Android 14 ou version ultérieure, Wi-Fi Aware est compatible avec le possibilité pour les applications privilégiées de suspendre et de reprendre des sessions de découverte actives (y compris tous les chemins de données associés à ces sessions). Prendre en charge permet aux appareils de reprendre les sessions de découverte plus rapidement tout en consommant moins d'énergie, car les sessions de découverte peuvent être suspendues.
Si un appareil est compatible avec cette fonctionnalité, le micrologiciel suspend la session Wi-Fi Aware lorsqu'une application privilégiée suspend la session de découverte. Lorsqu'une session de découverte est suspendue, l'appareil n'émet pas ni recevoir des frames pour cette session, y compris des NDP actifs session. Si toutes les sessions de découverte sont suspendues, l'appareil n'émet pas ni recevoir d'images Wi-Fi Aware.
Lorsqu'une application privilégiée reprend une session de découverte suspendue, le framework renvoie la session à son état précédent, y compris toutes les valeurs NDP associées sessions. Il est plus rapide de reprendre une session de découverte suspendue que de la réactiver Wi-Fi Aware et la création d'une session de découverte.
Pour permettre la suspension et la reprise des sessions de découverte, l'appareil
les fabricants doivent fournir une compatibilité
HAL et micrologicielle. Pour plus d'informations, consultez IWifiNanIface.java
.
Les fabricants d'appareils peuvent utiliser des communications hors bande (par exemple, BLE) pour synchroniser, suspendre et reprendre sur plusieurs appareils.
Validation
Android fournit un ensemble de tests unitaires, Tests de la suite de tests de compatibilité (CTS) Tests CTS Verifier pour valider le Wi-Fi Fonctionnalité Aware. Vous pouvez également tester la fonctionnalité Wi-Fi Aware Suite de test pour les fournisseurs (VTS).
Tests unitaires
Les tests du package Wi-Fi Aware sont exécutés à l'aide des éléments suivants:
Tests du service:
atest com.android.server.wifi.aware
Tests du responsable:
atest android.net.wifi.aware
Tests de la suite de tests de compatibilité (CTS)
Utilisez des tests CTS pour valider la fonctionnalité Wi-Fi Aware. CTS détecte quand la fonctionnalité est activé et inclut automatiquement les tests associés.
Les tests CTS peuvent être déclenchés à l'aide des éléments suivants:
atest SingleDeviceTest
Tests CTS Verifier
Les tests CTS Verifier valident le comportement Wi-Fi Aware à l'aide de deux appareils: un test et d'un appareil connu. Pour exécuter les tests, ouvrez CTS Verifier et accédez à la section intitulée Tests de reconnaissance du Wi-Fi.