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