ویژگی Wi-Fi Direct که با نام Wi-Fi P2P نیز شناخته میشود، به دستگاههای پشتیبانی اجازه میدهد مستقیماً با استفاده از پروتکل Wi-Fi Direct بدون دسترسی به اینترنت یا شبکه تلفن همراه، یکدیگر را کشف کرده و به یکدیگر متصل شوند. این ویژگی که بر اساس مشخصات Wi-Fi Direct Alliance Wi-Fi (WFA) ساخته شده است، امکان اشتراک گذاری داده های پرتوان را در میان دستگاه ها و برنامه های قابل اعتمادی که در غیر این صورت خارج از شبکه هستند، می دهد.
مثال ها و منبع
برای استفاده از این ویژگی، سازندگان دستگاه باید رابط های Wi-Fi Vendor و Supplicant HAL را پیاده سازی کنند.
در اندروید 13، رابط Supplicant از AIDL برای تعریف HAL استفاده می کند. در اندروید 14 و بالاتر، رابط Vendor HAL از AIDL استفاده می کند. در اندروید 12 و پایین تر، رابط های Supplicant و Vendor HAL با استفاده از HIDL تعریف می شوند.
سطوح Wi-Fi HAL زیر برای استفاده از ویژگی Wi-Fi Direct مورد نیاز است:
-
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: به یک پرچم ویژگی نیاز دارد
- پشتیبانی از Wi-Fi Direct (P2P) HAL (که به معنای پشتیبانی از سیستم عامل است)
برای پیاده سازی این ویژگی، سازندگان دستگاه رابط های Wi-Fi HIDL یا AIDL را پیاده سازی کرده و پرچم ویژگی را برای 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
Android نیاز دارد که آدرس دستگاه و آدرس رابط Wi-Fi Direct تصادفی باشد. آنها باید با آدرس MAC واقعی دستگاه متفاوت باشند و باید شرایط زیر را برآورده کنند:
- اگر گروه دائمی ذخیره نشده باشد، آدرس دستگاه Wi-Fi Direct باید هنگام ایجاد رابط تصادفی باشد. در غیر این صورت آدرس دستگاه باید از آخرین آدرس مک تولید شده استفاده کند.
- آدرس رابط Wi-Fi Direct که به عنوان آدرس گروه نیز شناخته می شود، باید هر بار که یک اتصال برقرار می شود تصادفی شود.
تصادفی سازی Wi-Fi Direct MAC در 'wpa_supplicant' پیاده سازی شده و توسط دو پیکربندی p2p_device_random_mac_addr
و p2p_interface_random_mac_addr
کنترل می شود.
برای فعال کردن این ویژگی، سازندگان دستگاه باید:
- Wi-Fi Supplicant
ISupplicantP2pIface::setMacRandomization
API را اجرا کنید. بسته به رابط پیاده سازی شده، این در:-
hardware/interface/wifi/supplicant/1.2
برای HIDL -
hardware/interface/wifi/supplicant/aidl
برای AIDL
-
- در یک پوشش سفارشی دستگاه
config_wifi_p2p_mac_randomization_supported
را روی "true" تنظیم کنید.
اعتبار سنجی
Android مجموعهای از تستهای واحد، تستهای Compatibility Test Suite (CTS) و تستهای CTS Verifier را برای تایید ویژگی 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 رفتار Wi-Fi Direct را با استفاده از دو دستگاه تأیید میکند: یک دستگاه آزمایش و یک دستگاه خوب شناخته شده . برای اجرای تستها، CTS Verifier را باز کنید و به قسمتی با عنوان Wi-Fi Direct Tests بروید.