Fitur Wi-Fi Aware yang ditambahkan di Android 8.0 memungkinkan perangkat yang kompatibel untuk saling menemukan, terhubung, dan mengukur jarak (ditambahkan di Android 9) secara langsung menggunakan protokol Wi-Fi Aware tanpa akses internet atau jaringan seluler. Fitur ini, yang dibangun berdasarkan spesifikasi Wi-Fi Aware (WFA) Wi-Fi Alliance (versi 2.0, 3.0, 3.1, dan 4.0), memungkinkan berbagi data dengan throughput tinggi secara mudah di antara perangkat dan aplikasi tepercaya yang tidak terhubung ke jaringan.
Contoh dan sumber
Untuk menggunakan fitur ini, produsen perangkat harus menerapkan Wi-Fi Vendor HAL. Di Android 14 dan yang lebih tinggi, antarmuka Vendor HAL ditentukan menggunakan AIDL. Untuk Android 13 dan yang lebih lama, antarmuka HAL Vendor ditentukan menggunakan HIDL.
Ikuti antarmuka Wi-Fi untuk menggunakan fitur Wi-Fi Aware. Bergantung pada antarmuka yang diimplementasikan, ini adalah:
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.2
atau yang lebih baru
Anda dapat merujuk ke HAL Wi-Fi lama untuk melihat korelasinya dengan antarmuka AIDL dan HIDL:
hardware/libhardware_legacy/+/android16-release/include/hardware_legacy/wifi_nan.h
.
Implementasi
Produsen perangkat harus menyediakan dukungan framework dan HAL/firmware:
- Framework:
- Kode AOSP
- Aktifkan Aware: Memerlukan tombol fitur dan tombol build
- Dukungan HAL Wi-Fi Aware (NAN) (yang menyiratkan dukungan firmware)
Untuk mengimplementasikan fitur ini, produsen perangkat mengimplementasikan antarmuka Wi-Fi dan mengaktifkan dua flag fitur:
Di
BoardConfig.mk
atauBoardConfig-common.mk
yang ada didevice/<oem>/<device>
, tambahkan tanda berikut:WIFI_HIDL_FEATURE_AWARE := true
Di
device.mk
yang terletak didevice/<oem>/<device>
, ubah variabel lingkunganPRODUCT_COPY_FILES
untuk menyertakan dukungan untuk fitur Wi-Fi 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 mencakup penentuan jarak ke perangkat peer menggunakan protokol IEEE 802.11mc, yang juga dikenal sebagai Round Trip Time (RTT). Sub-fitur Wi-Fi Aware ini bersifat kondisional pada perangkat yang mendukung fitur Wi-Fi RTT, yaitu, perangkat harus mendukung Wi-Fi Aware dan Wi-Fi RTT. Untuk mengetahui detail selengkapnya, lihat Wi-Fi RTT.
Jika tidak, semua yang diperlukan untuk fitur ini disertakan dalam AOSP.
Flag WIFI_HIDL_FEATURE_AWARE
diabaikan jika flag
WIFI_HAL_INTERFACE_COMBINATIONS
ditentukan. Untuk mengetahui informasi selengkapnya, lihat
Konkurensi multi-antarmuka Wi-Fi.
Pengacakan MAC
Android mewajibkan alamat MAC penemuan Wi-Fi Aware (NMI) dan antarmuka data (NDP) diacak dan tidak identik dengan alamat MAC sebenarnya perangkat. Alamat MAC harus:
- Diacak setiap kali Wi-Fi Aware diaktifkan atau diaktifkan kembali.
Jika Wi-Fi Aware diaktifkan, alamat MAC harus diacak pada interval reguler yang dikonfigurasi oleh parameter
NanConfigRequest.macAddressRandomizationIntervalSec
. Setelan ini dikonfigurasi oleh framework secara default menjadi 30 menit.
Menangguhkan dan melanjutkan
Di Android 14 dan yang lebih tinggi, Wi-Fi Aware mendukung kemampuan aplikasi istimewa untuk menangguhkan dan melanjutkan sesi penemuan aktif (termasuk semua jalur data yang terkait dengan sesi tersebut). Mendukung kemampuan ini memungkinkan perangkat melanjutkan sesi penemuan lebih cepat dan menggunakan lebih sedikit daya karena sesi penemuan dapat ditangguhkan.
Jika perangkat mendukung kemampuan menangguhkan dan melanjutkan ini, firmware akan menangguhkan sesi Wi-Fi Aware saat aplikasi yang memiliki hak istimewa menangguhkan sesi penemuan. Jika sesi penemuan dalam status ditangguhkan, perangkat tidak akan mengirimkan atau menerima frame apa pun untuk sesi tersebut, termasuk NDP aktif apa pun dalam sesi tersebut. Jika semua sesi penemuan ditangguhkan, perangkat tidak akan mengirimkan atau menerima frame Wi-Fi Aware.
Saat aplikasi istimewa melanjutkan sesi penemuan yang ditangguhkan, framework akan mengembalikan sesi ke status sebelumnya, termasuk semua sesi NDP yang terkait. Melanjutkan sesi penemuan yang ditangguhkan lebih cepat daripada memunculkan Wi-Fi Aware dan membuat sesi penemuan baru.
Untuk mendukung kemampuan menangguhkan dan melanjutkan sesi penemuan, produsen
perangkat harus menyediakan dukungan HAL dan firmware. Untuk detailnya, lihat
IWifiNanIface.java
.
Produsen perangkat dapat menggunakan komunikasi di luar band (misalnya, BLE) untuk menyelaraskan penangguhan dan melanjutkan di beberapa perangkat.
Validasi
Android menyediakan serangkaian pengujian unit, pengujian Compatibility Test Suite (CTS), dan pengujian CTS Verifier untuk memvalidasi fitur Wi-Fi Aware. Wi-Fi Aware juga dapat diuji menggunakan Vendor Test Suite (VTS).
Pengujian unit
Pengujian paket Wi-Fi Aware dieksekusi menggunakan:
Uji layanan:
atest com.android.server.wifi.aware
Pengujian pengelola:
atest android.net.wifi.aware
Pengujian Compatibility Test Suite (CTS)
Gunakan pengujian CTS untuk memvalidasi fitur Wi-Fi Aware. CTS mendeteksi saat fitur diaktifkan dan otomatis menyertakan pengujian terkait.
Pengujian CTS dapat dipicu menggunakan:
atest SingleDeviceTest
Pengujian CTS Verifier
Pengujian CTS Verifier memvalidasi perilaku Wi-Fi Aware menggunakan dua perangkat: perangkat pengujian dan perangkat yang diketahui berfungsi dengan baik. Untuk menjalankan pengujian, buka CTS Verifier dan buka bagian berjudul Wi-Fi Aware Tests.