Wi-Fi P2P olarak da bilinen Wi-Fi Direct özelliği, destekleyen cihazların internet veya hücresel ağ erişimi olmadan Wi-Fi Direct protokolünü kullanarak birbirlerini keşfetmelerine ve doğrudan bağlanmalarına olanak tanır. Wi-Fi Alliance (WFA) Wi-Fi Direct spesifikasyonu üzerine inşa edilen bu özellik, normalde ağ dışında olan güvenilir cihazlar ve uygulamalar arasında yüksek verimli verilerin paylaşılmasına olanak tanır.
Örnekler ve kaynak
Bu özelliği kullanmak için cihaz üreticilerinin Wi-Fi Satıcısı ve İstemci HAL arayüzlerini uygulaması gerekir.
Android 13'te, İstemci arayüzü HAL tanımı için AIDL'yi kullanır. Android 14 ve üzeri sürümlerde Satıcı HAL arayüzü AIDL'yi kullanır. Android 12 ve önceki sürümlerde, İstemci ve Satıcı HAL arayüzleri HIDL kullanılarak tanımlanır.
Wi-Fi Direct özelliğini kullanmak için aşağıdaki Wi-Fi HAL yüzeyleri gereklidir:
-
hardware/interfaces/wifi/aidl
veyahardware/interfaces/wifi/1.3
veya üzeri -
hardware/interfaces/wifi/supplicant/aidl
veyahardware/interfaces/wifi/supplicant/1.2
veya üzeri
Uygulama
Cihaz üreticilerinin hem çerçeve hem de HAL/ürün yazılımı desteği sağlaması gerekir:
- Çerçeve:
- AOSP kodu
- Wi-Fi Direct'i Etkinleştir: Bir özellik işareti gerektirir
- Wi-Fi Direct (P2P) HAL desteği (ürün yazılımı desteği anlamına gelir)
Bu özelliği uygulamak için cihaz üreticileri Wi-Fi HIDL veya AIDL arayüzlerini uygular ve Wi-Fi Direct için özellik işaretini etkinleştirir. device/<oem>/<device>
dizininde bulunan device.mk
dosyasında, Wi-Fi Direct özelliği desteğini içerecek şekilde PRODUCT_COPY_FILES
ortam değişkenini değiştirin:
```
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'i desteklemeye yönelik diğer tüm gereksinimler AOSP'ye dahildir.
MAC rastgeleleştirmesi
Android, Wi-Fi Direct cihaz adresinin ve arayüz adresinin rastgele olmasını gerektirir. Cihazın gerçek MAC adresinden farklı olmalı ve aşağıdaki gereksinimleri karşılamalıdır:
- Kaydedilmiş kalıcı bir grup yoksa, Wi-Fi Direct cihaz adresi arayüz oluşturulurken rastgele seçilmelidir; aksi takdirde cihaz adresi son oluşturulan MAC adresini kullanmaya devam etmelidir.
- Grup adresi olarak da bilinen Wi-Fi Direct arayüz adresi, her bağlantı kurulduğunda rastgele seçilmelidir.
Wi-Fi Direct MAC rastgeleleştirmesi 'wpa_supplicant'ta uygulanır ve p2p_device_random_mac_addr
ve p2p_interface_random_mac_addr
olmak üzere iki yapılandırma tarafından kontrol edilir.
Bu özelliği etkinleştirmek için cihaz üreticilerinin şunları yapması gerekir:
- Wi-Fi Supplicant
ISupplicantP2pIface::setMacRandomization
API'sini uygulayın. Uygulanan arayüze bağlı olarak bu:- HIDL için
hardware/interface/wifi/supplicant/1.2
- AIDL için
hardware/interface/wifi/supplicant/aidl
- HIDL için
- Bir cihazın özel katmanında
config_wifi_p2p_mac_randomization_supported
değerini 'true' olarak ayarlayın.
Doğrulama
Android, Wi-Fi Direct özelliğini doğrulamak için bir dizi birim testi, entegrasyon testi (Android Bağlantı Test Paketi veya ACTS), Uyumluluk Test Paketi (CTS) testleri ve CTS Doğrulayıcı testleri sağlar. Wi-Fi Direct ayrıca Vendor Test Suite (VTS) kullanılarak da test edilebilir.
Birim testleri
Aşağıdaki testleri kullanarak Wi-Fi Direct paketini doğrulayın.
Servis testleri:
atest com.android.server.wifi.p2p
Yönetici testleri:
atest android.net.wifi.p2p
Entegrasyon testleri (ACTS)
tools/test/connectivity/acts_tests/tests/google/wifi/p2p
adresinde bulunan ACTS Wi-FI Direct test paketi, Wi-Fi Direct işlevsel testlerini uygular.
Uyumluluk Test Paketi (CTS) testleri
Wi-Fi Direct özelliğini doğrulamak için CTS testlerini kullanın. CTS, özelliğin ne zaman etkinleştirildiğini algılar ve ilgili testleri otomatik olarak dahil eder.
CTS testlerini tetiklemek için şunu çalıştırın:
% atest android.net.wifi.p2p.cts
CTS Doğrulayıcı testleri
CTS Doğrulayıcı testleri, Wi-Fi Direct davranışını iki cihazı kullanarak doğrular: bir test cihazı ve iyi olduğu bilinen bir cihaz. Testleri çalıştırmak için CTS Doğrulayıcı'yı açın ve Wi-Fi Direct Testleri başlıklı bölüme gidin.