ویژگی Wi-Fi Direct که با نام Wi-Fi P2P نیز شناخته میشود، به دستگاههای پشتیبانیکننده اجازه میدهد تا با استفاده از پروتکل Wi-Fi Direct و بدون دسترسی به اینترنت یا شبکه تلفن همراه، مستقیماً یکدیگر را کشف و به یکدیگر متصل شوند. این ویژگی که بر اساس مشخصات Wi-Fi Direct اتحادیه Wi-Fi (WFA) ساخته شده است، امکان اشتراکگذاری دادههای با توان عملیاتی بالا را بین دستگاهها و برنامههای مورد اعتماد که در غیر این صورت خارج از شبکه هستند، فراهم میکند.
مثالها و منابع
برای استفاده از این ویژگی، تولیدکنندگان دستگاه باید رابطهای HAL مربوط به فروشنده و متقاضی Wi-Fi را پیادهسازی کنند.
در اندروید ۱۳، رابط Supplicant از AIDL برای تعریف HAL استفاده میکند. در اندروید ۱۴ و بالاتر، رابط Vendor HAL از AIDL استفاده میکند. در اندروید ۱۲ و پایینتر، رابطهای Supplicant و Vendor HAL با استفاده از HIDL تعریف میشوند.
برای استفاده از ویژگی Wi-Fi Direct، به سطوح Wi-Fi HAL زیر نیاز است:
-  hardware/interfaces/wifi/aidlیا،hardware/interfaces/wifi/1.3یا بالاتر
-  hardware/interfaces/wifi/supplicant/aidlیا،hardware/interfaces/wifi/supplicant/1.2یا بالاتر
پیادهسازی
تولیدکنندگان دستگاه باید هم از چارچوب و هم از HAL/firmware پشتیبانی کنند:
-  چارچوب:- کد AOSP
- فعال کردن Wi-Fi Direct: به یک feature flag نیاز دارد
 
- پشتیبانی از Wi-Fi Direct (P2P) و HAL (که به معنای پشتیبانی از میانافزار است)
 برای پیادهسازی این ویژگی، تولیدکنندگان دستگاه، رابطهای Wi-Fi HIDL یا AIDL را پیادهسازی کرده و feature flag را برای Wi-Fi Direct فعال میکنند. در device.mk واقع در device/<oem>/<device> ، متغیر محیطی PRODUCT_COPY_FILES را تغییر دهید تا پشتیبانی از ویژگی Wi-Fi Direct را شامل شود:
PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml
سایر الزامات برای پشتیبانی از Wi-FI Direct در AOSP گنجانده شده است.
تصادفیسازی MAC
اندروید الزام میکند که آدرس دستگاه Wi-Fi Direct و آدرس رابط تصادفی باشند. آنها باید با آدرس MAC واقعی دستگاه متفاوت باشند و شرایط زیر را داشته باشند:
- اگر هیچ گروه پایداری ذخیره نشده باشد، آدرس دستگاه Wi-Fi Direct باید هنگام ایجاد رابط تصادفی شود؛ در غیر این صورت، آدرس دستگاه باید همچنان از آخرین آدرس MAC تولید شده استفاده کند.
- آدرس رابط Wi-Fi Direct که به عنوان آدرس گروهی نیز شناخته میشود، باید هر بار که اتصال برقرار میشود، به صورت تصادفی تغییر کند.
 تصادفیسازی مک آدرس Wi-Fi Direct در 'wpa_supplicant' پیادهسازی شده و توسط دو پیکربندی p2p_device_random_mac_addr و p2p_interface_random_mac_addr کنترل میشود.
برای فعال کردن این ویژگی، تولیدکنندگان دستگاه باید:
-  API مربوط به Wi-Fi Supplicant ISupplicantP2pIface::setMacRandomizationپیادهسازی کنید. بسته به رابط پیادهسازی شده، این در مسیر زیر است:-  hardware/interface/wifi/supplicant/1.2برای HIDL
-  hardware/interface/wifi/supplicant/aidlبرای AIDL
 
-  
-  در یک پوشش سفارشی دستگاه، config_wifi_p2p_mac_randomization_supportedرا روی «true» تنظیم کنید.
اعتبارسنجی
اندروید مجموعهای از تستهای واحد، تستهای مجموعه تست سازگاری (CTS) و تستهای تأییدکننده CTS را برای اعتبارسنجی ویژگی Wi-Fi Direct ارائه میدهد. Wi-Fi Direct همچنین میتواند با استفاده از مجموعه تست فروشنده (VTS) آزمایش شود.
تستهای واحد
با استفاده از آزمایشهای زیر، بسته Wi-Fi Direct را تأیید کنید.
آزمایشهای سرویس:
atest com.android.server.wifi.p2pآزمونهای مدیریتی:
atest android.net.wifi.p2pتستهای مجموعه تست سازگاری (CTS)
از تستهای CTS برای اعتبارسنجی ویژگی Wi-Fi Direct استفاده کنید. CTS زمان فعال شدن این ویژگی را تشخیص میدهد و بهطور خودکار تستهای مرتبط را لحاظ میکند.
برای شروع تستهای CTS، دستور زیر را اجرا کنید:
atest android.net.wifi.p2p.ctsآزمایشهای تأییدکننده CTS
آزمایشهای CTS Verifier رفتار Wi-Fi Direct را با استفاده از دو دستگاه اعتبارسنجی میکنند: یک دستگاه آزمایشی و یک دستگاه سالم . برای اجرای آزمایشها، CTS Verifier را باز کنید و به بخشی با عنوان Wi-Fi Direct Tests بروید.
