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

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