Wi-Fi Aware funkcja dodana w Androidzie 8.0 pozwala współpracującym z nim urządzeniom wykrywać, łączyć się i zakres (dodany w Androidzie 9) bezpośrednio do siebie korzystając z protokołu Wi-Fi Aware, bez dostępu do internetu ani sieci komórkowej. Ten funkcja opracowana na zlecenie Wi-Fi Alliance (WFA) Specyfikacja Wi-Fi Aware (wersje 2.0, 3.0, 3.1 i 4.0) umożliwia łatwe udostępnianie danych z dużą przepustowością wśród zaufanych urządzeń i aplikacji, które są poza siecią.
Przykłady i źródło
Aby korzystać z tej funkcji, producenci urządzeń powinni wdrożyć HAL dostawcy sieci Wi-Fi. Na Androidzie 14 i nowszych interfejs HAL dostawcy jest zdefiniowany przy użyciu AIDL. W przypadku Androida 13 i starszych wersji: interfejs HAL dostawcy jest zdefiniowany za pomocą HIDL.
Postępuj zgodnie z instrukcjami w interfejsie Wi-Fi, aby zastosować funkcję Wi-Fi Aware. W zależności od tego, który interfejs został zaimplementowany, będzie to:
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.2
lub później
Starsza wersja HAL Wi-Fi pozwala sprawdzić, jak ma się ona do Interfejsy AIDL i HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_nan.h.
Implementacja
Producenci urządzeń muszą zapewnić zarówno wsparcie w zakresie platformy, jak i HAL/oprogramowania układowego:
- Platforma:
- Kod AOSP
- Włącz Aware: wymaga flagi funkcji i kompilacji
- obsługa HAL Wi-Fi Aware (NAN), co oznacza obsługę oprogramowania układowego;
Aby włączyć tę funkcję, producenci urządzeń wdrażają interfejs Wi-Fi. i włącz 2 flagi funkcji:
BoardConfig.mk
lubBoardConfig-common.mk
, w:device/<oem>/<device>
, dodaj tę flagę:WIFI_HIDL_FEATURE_AWARE := true
W usłudze
device.mk
w lokalizacjidevice/<oem>/<device>
zmodyfikuj Zmienna środowiskowaPRODUCT_COPY_FILES
z obsługą sieci Wi-Fi Znana funkcja: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 obejmuje wiele urządzeń równorzędnych z protokołem IEEE 802.11mc, czasu RTT. Ta funkcja podrzędna Wi-Fi Aware to jeśli urządzenie obsługuje funkcję RTT Wi-Fi, do obsługi zarówno Wi-Fi Aware, jak i RTT Wi-Fi. Więcej informacji: RTT Wi-Fi.
W przeciwnym razie wszystkie dane wymagane przez tę funkcję są uwzględnione w raporcie AOSP.
Flaga WIFI_HIDL_FEATURE_AWARE
jest ignorowana, jeśli
WIFI_HAL_INTERFACE_COMBINATIONS
flaga. Więcej informacji:
Współbieżność wielu interfejsów Wi-Fi.
randomizacja MAC
Android wymaga adresu MAC wykrywania Wi-Fi Aware (NMI) i danych interfejsów (NDP) w losowy sposób i nie mogą być identyczne z prawdziwym adresem MAC. od urządzenia. Adresy MAC muszą być:
- Losowe przy każdym włączeniu lub ponownym włączeniu Wi-Fi Aware.
Gdy funkcja Wi-Fi Aware jest włączona, adres MAC musi być randomizowany interwał skonfigurowany przez
NanConfigRequest.macAddressRandomizationIntervalSec
. Ten jest domyślnie skonfigurowany przez platformę na 30 minut.
Zawieś i wznów
Na Androidzie 14 i nowszych, Wi-Fi Aware obsługuje możliwość zawieszania i wznawiania aktywnych sesji wykrywania przez aplikacje z podwyższonymi uprawnieniami (w tym wszystkie ścieżki danych powiązane z tymi sesjami). Uzasadnienie pozwala urządzeniom szybciej wznawiać sesje wykrywania i zużywać mniej energii, i można je zawieszać.
Jeśli urządzenie obsługuje tę możliwość zawieszania i wznawiania, oprogramowanie układowe zostanie zawieszone sesji Wi-Fi Aware, gdy aplikacja z podwyższonymi uprawnieniami zawiesi sesję wykrywania. Gdy sesja wykrywania jest zawieszona, urządzenie nie przesyła ani otrzymać żadnych klatek w tej sesji, w tym aktywnych NDP w tej sesji. . Jeśli wszystkie sesje wykrywania są zawieszone, urządzenie nie przesyła ani odbierać żadnych klatek Wi-Fi Aware.
Gdy aplikacja z podwyższonymi uprawnieniami wznowi zawieszoną sesję wykrywania, platforma przywraca sesję do poprzedniego stanu, w tym wszystkich powiązanych NDP sesji. Wznowienie zawieszonej sesji wykrywania trwa krócej niż wywołanie Wi-Fi Aware i tworzę nową sesję wykrywania.
Aby umożliwić zawieszanie i wznawianie sesji wykrywania, urządzenie
producenci muszą zapewniać pomoc techniczną dotyczącą HAL i oprogramowania. Więcej informacji:
IWifiNanIface.java
Producenci urządzeń mogą używać komunikacji zewnętrznej (np. BLE), aby synchronizować zawieszenia i wznawianie na wielu urządzeniach.
Weryfikacja
Android zapewnia zestaw testów jednostkowych, testy Compatibility Test Suite (CTS), Weryfikator CTS sprawdzający sieć Wi-Fi. Funkcja Aware. Subskrypcję Wi-Fi Aware możesz też przetestować za pomocą Vendor Test Suite (VTS)
Testy jednostkowe
Testy pakietu Wi-Fi Aware są wykonywane przy użyciu:
Testy usługi:
atest com.android.server.wifi.aware
Testy menedżera:
atest android.net.wifi.aware
Testy Compatibility Test Suite (CTS)
Użyj testów CTS, aby sprawdzić działanie funkcji Wi-Fi Aware. CTS wykrywa, kiedy funkcja jest włączona i automatycznie uwzględnia powiązane testy.
Testy CTS można aktywować za pomocą:
atest SingleDeviceTest
Testy weryfikatora CTS
Weryfikator CTS weryfikuje zachowanie Wi-Fi Aware na 2 urządzeniach: i urządzenia znanego dobrego. Aby uruchomić testy, otwórz narzędzie CTS Verifier i przejdź do sekcji Testy rozpoznania Wi-Fi.