Wi-Fi Aware

تتيح ميزة Wi-Fi Aware المضافة في Android 8.0 للأجهزة المتوافقة إمكانية اكتشاف الأجهزة الأخرى والاتصال بها وتحديد نطاقها (تمت إضافة هذه الميزة في Android 9) بشكل مباشر باستخدام بروتوكول Wi-Fi Aware بدون الحاجة إلى الاتصال بالإنترنت أو بشبكة الجوّال. تستند هذه الميزة إلى مواصفات Wi-Fi Aware الصادرة عن تحالف Wi-Fi (الإصدارات 2.0 و3.0 و3.1 و4.0)، وتسهّل مشاركة البيانات ذات معدل النقل العالي بين الأجهزة والتطبيقات الموثوق بها التي تكون غير متصلة بالشبكة.

للحصول على وصف تفصيلي لبنية Wi-Fi Aware في نظام التشغيل Android 17 والإصدارات الأحدث، يُرجى الاطّلاع على بنية Wi-Fi Aware.

الأمثلة والمصدر

لاستخدام هذه الميزة، على مصنّعي الأجهزة تنفيذ Wi-Fi Vendor HAL. في الإصدار 14 من نظام التشغيل Android والإصدارات الأحدث، يتم تحديد واجهة Vendor HAL باستخدام لغة تعريف واجهة Android (AIDL). في نظام التشغيل Android 13 والإصدارات الأقدم، يتم تحديد واجهة Vendor HAL باستخدام HIDL.

اتّبِع واجهة Wi-Fi لاستخدام ميزة Wi-Fi Aware. استنادًا إلى الواجهة التي تم تنفيذها، يكون هذا الإجراء أحد الإجراءات التالية:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: الإصدار hardware/interfaces/wifi/1.2 أو إصدار أحدث

يمكنك الرجوع إلى واجهة HAL القديمة لشبكة Wi-Fi لمعرفة كيفية ارتباطها بواجهتَي AIDL وHIDL: hardware/libhardware_legacy/+/android17-release/include/hardware_legacy/wifi_nan.h.

التنفيذ

على الشركات المصنّعة للأجهزة توفير إمكانية استخدام كلّ من إطار العمل وطبقة تجريد الأجهزة/البرامج الثابتة:

  • إطار العمل:
    • رمز مشروع Android المفتوح المصدر (AOSP)
    • تفعيل Aware: يتطلّب ذلك علامة ميزة وعلامة إصدار
  • توفُّر Wi-Fi Aware (NAN) HAL (ما يعني توفُّر برامج ثابتة متوافقة)

لتنفيذ هذه الميزة، تنفّذ الشركات المصنّعة للأجهزة واجهة Wi-Fi وتفعّل علامتَي الميزة التاليتَين:

  • في BoardConfig.mk أو BoardConfig-common.mk ضمن device/<oem>/<device>، أضِف العلامة التالية:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • في ملف device.mk الموجود في device/<oem>/<device>، عدِّل متغير البيئة PRODUCT_COPY_FILES لتضمين إمكانية استخدام ميزة Wi-Fi Aware:

    PRODUCT_COPY_FILES +=
    frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
    

تتضمّن ميزة Wi-Fi Aware تحديد المسافة إلى الأجهزة المجاورة باستخدام بروتوكول IEEE 802.11mc، المعروف أيضًا باسم "وقت الاستجابة" (RTT). تتطلّب هذه الميزة الفرعية من Wi-Fi Aware أن يتيح الجهاز ميزة Wi-Fi RTT، أي أنّه يجب أن يتيح الجهاز استخدام كلّ من Wi-Fi Aware وWi-Fi RTT. لمزيد من التفاصيل، يُرجى الاطّلاع على مقالة Wi-Fi RTT.

في ما عدا ذلك، يتم تضمين كل ما هو مطلوب لهذه الميزة في AOSP.

يتم تجاهل العلامة WIFI_HIDL_FEATURE_AWARE في حال تحديد العلامة WIFI_HAL_INTERFACE_COMBINATIONS. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة التزامن المتعدد للواجهات في شبكة Wi-Fi.

التوزيع العشوائي لعناوين MAC

يتطلّب نظام التشغيل Android أن يتم إنشاء عنوان MAC عشوائي لعملية البحث عن الأجهزة المجاورة باستخدام Wi-Fi Aware (NMI) وواجهات البيانات (NDP)، وألا يكون هذا العنوان مطابقًا لعنوان MAC الفعلي للجهاز. يجب أن تكون عناوين MAC:

  • يتم إنشاء عنوان MAC عشوائي كلّما تم تفعيل ميزة Wi-Fi Aware أو إعادة تفعيلها.
  • عند تفعيل Wi-Fi Aware، يجب اختيار عنوان MAC بشكل عشوائي على فترات منتظمة يتم ضبطها باستخدام المَعلمة NanConfigRequest.macAddressRandomizationIntervalSec. يتم ضبط هذه القيمة تلقائيًا على 30 دقيقة من خلال إطار العمل.

التعليق والاستئناف

في نظام التشغيل Android 14 والإصدارات الأحدث، تتيح خدمة Wi-Fi Aware للتطبيقات التي لديها امتيازات تعليق جلسات البحث النشطة واستئنافها (بما في ذلك جميع مسارات البيانات المرتبطة بهذه الجلسات). يتيح توفير هذه الإمكانية للأجهزة استئناف جلسات البحث بشكل أسرع واستخدام طاقة أقل لأنّه يمكن تعليق جلسات البحث.

إذا كان الجهاز يتيح إمكانية تعليق الجلسة واستئنافها، فإنّ البرامج الثابتة تعلّق جلسة Wi-Fi Aware عندما يعلّق تطبيق ذو امتيازات جلسة البحث. عندما تكون جلسة البحث في حالة تعليق، لا يرسل الجهاز أو يستقبل أي إطارات لتلك الجلسة، بما في ذلك أي بروتوكولات NDP نشطة في تلك الجلسة. في حال تم تعليق جميع جلسات البحث عن الأجهزة المجاورة، لن يرسل الجهاز أو يستقبل أي إطارات Wi-Fi Aware.

عندما يستأنف تطبيق ذو امتيازات جلسة بحث معلّقة، يعيد إطار العمل الجلسة إلى حالتها السابقة، بما في ذلك جميع جلسات NDP المرتبطة بها. تكون استعادة جلسة اكتشاف معلّقة أسرع من عرض Wi-Fi Aware وإنشاء جلسة اكتشاف جديدة.

لإتاحة إمكانية تعليق جلسات البحث واستئنافها، يجب أن يوفّر مصنّعو الأجهزة دعمًا للطبقة المجردة من الأجهزة (HAL) والبرامج الثابتة. للحصول على التفاصيل، يُرجى الاطّلاع على IWifiNanIface.java.

يمكن لمصنّعي الأجهزة استخدام الاتصالات خارج النطاق (مثل BLE) لمزامنة عمليات التعليق والاستئناف على أجهزة متعددة.

التحقق من صحة البيانات

يوفر نظام التشغيل Android مجموعة من اختبارات الوحدات واختبارات مجموعة أدوات اختبار التوافق (CTS) واختبارات CTS Verifier للتحقّق من صحة ميزة Wi-Fi Aware. يمكن أيضًا اختبار Wi-Fi Aware باستخدام مجموعة أدوات اختبار المورّد (VTS).

اختبارات الوحدات

يتم تنفيذ اختبارات حزمة Wi-Fi Aware باستخدام:

اختبارات الخدمة:

atest com.android.server.wifi.aware

اختبارات المدراء:

atest android.net.wifi.aware

اختبارات مجموعة أدوات اختبار التوافق (CTS)

استخدِم اختبارات CTS للتحقّق من صحة ميزة Wi-Fi Aware. يرصد اختبار التوافق (CTS) الحالات التي يتم فيها تفعيل الميزة، ويشمل تلقائيًا الاختبارات المرتبطة بها.

يمكن تشغيل اختبارات CTS باستخدام:

atest SingleDeviceTest

اختبارات CTS Verifier

تتحقّق اختبارات CTS Verifier من صحة سلوك Wi-Fi Aware باستخدام جهازَين: جهاز اختبار وجهاز معروف أنّه يعمل بشكل جيد. لتشغيل الاختبارات، افتح تطبيق CTS Verifier وانتقِل إلى القسم بعنوان "اختبارات Wi-Fi Aware".