ارتباط مستقیم به کمک وای - فای

ویژگی 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 بروید.