Android 9 में वाई-फ़ाई राउंड ट्रिप टाइम (आरटीटी) की सुविधा की मदद से, इस तरह के डिवाइसों को एक-दूसरे से दूरी का पता चलता है: चाहे वे ऐक्सेस पॉइंट (एपी) हों या वाई-फ़ाई अवेयर पीयर (अगर डिवाइस पर वाई-फ़ाई अवेयर की सुविधा काम करती है). यह सुविधा, IEEE 802.11mc और IEEE 802.11az प्रोटोकॉल (Android 15 से उपलब्ध) पर आधारित है. इसकी मदद से, ऐप्लिकेशन जगह की सटीक जानकारी और जगह की जानकारी का बेहतर तरीके से इस्तेमाल कर सकते हैं.
उदाहरण और सोर्स
इस सुविधा का इस्तेमाल करने के लिए, वेंडर एचएएल इंटरफ़ेस लागू करें. Android 14 और उसके बाद के वर्शन में, वेंडर एचएएल इंटरफ़ेस को एआईडीएल का इस्तेमाल करके तय किया जाता है. Android 13 और इससे पहले के वर्शन में, वेंडर एचएएल इंटरफ़ेस को HIDL का इस्तेमाल करके तय किया जाता है. Android 8.0 में, HIDL ने पिछले हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) स्ट्रक्चर की जगह ले ली है. इसका इस्तेमाल, इंटरफ़ेस और पैकेज में इकट्ठा किए गए टाइप और तरीकों को कॉल करके, लागू करने की प्रोसेस को आसान बनाने के लिए किया जाता है.
वाई-फ़ाई आरटीटी सुविधा का इस्तेमाल करने के लिए, वाई-फ़ाई इंटरफ़ेस का पालन करें. लागू किए गए इंटरफ़ेस के हिसाब से, यह:
- एआईडीएल:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.0
या उसके बाद का.
यह देखने के लिए कि यह एआईडीएल और एचआईडीएल इंटरफ़ेस से कैसे जुड़ा है, लेगसी वाई-फ़ाई एचएएल देखें: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h.
लागू करना
वाई-फ़ाई आरटीटी लागू करने के लिए, आपको फ़्रेमवर्क और एचएएल/फ़र्मवेयर, दोनों के लिए सहायता देनी होगी:
फ़्रेमवर्क:
- AOSP कोड
- वाई-फ़ाई आरटीटी (रीयल-टाइम में मैसेज भेजना) चालू करना: इसके लिए, सुविधा फ़्लैग की ज़रूरत होती है
वाई-फ़ाई आरटीटी (IEEE 802.11mc या IEEE 802.11az) एचएएल के साथ काम करना (इसका मतलब है कि फ़र्मवेयर के साथ काम करना)
इस सुविधा को लागू करने के लिए, वाई-फ़ाई AIDL या HIDL इंटरफ़ेस लागू करें और सुविधा फ़्लैग चालू करें:
device/<oem>/<device>
में मौजूदdevice.mk
में,PRODUCT_COPY_FILES
एनवायरमेंट वैरिएबल में बदलाव करें, ताकि Wi-Fi RTT की सुविधा काम कर सके:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
अगर ऐसा नहीं है, तो इस सुविधा के लिए ज़रूरी सभी चीज़ें AOSP में शामिल हैं.
एमएसी पता बदलने की सुविधा
निजता को बेहतर बनाने के लिए, वाई-फ़ाई आरटीटी लेन-देन के दौरान इस्तेमाल किया जाने वाला MAC पता, किसी भी क्रम में लगाया जाना चाहिए. इसका मतलब है कि यह पता, वाई-फ़ाई इंटरफ़ेस के नेटिव MAC पते से मेल नहीं खाना चाहिए. हालांकि, अपवाद के तौर पर, जब कोई डिवाइस किसी एपी से जुड़ा होता है, तो वह उस एपी या अन्य एपी के साथ आरटीटी लेन-देन के लिए, उस MAC पते का इस्तेमाल कर सकता है जिससे वह जुड़ा होता है.
पुष्टि करें
इस सुविधा के लिए, Android Compatibility Test Suite (CTS) टेस्ट मौजूद हैं. सीटीएस यह पता लगाता है कि सुविधा चालू है या नहीं. साथ ही, इससे जुड़े टेस्ट अपने-आप शामिल कर लेता है. विक्रेता टेस्ट सुइट (वीटीएस) का इस्तेमाल करके भी इस सुविधा की जांच की जा सकती है.
यूनिट टेस्ट
वाई-फ़ाई आरटीटी पैकेज टेस्ट, इनका इस्तेमाल करके किए जाते हैं:
सेवा की जांच:
atest com.android.server.wifi.rtt
मैनेजर टेस्ट:
atest android.net.wifi.rtt
सीटीएस
इस सुविधा के लिए, Android Compatibility Test Suite (CTS) टेस्ट मौजूद हैं. सीटीएस यह पता लगाता है कि सुविधा चालू है या नहीं. साथ ही, इससे जुड़े टेस्ट अपने-आप शामिल कर लेता है. जांचे जा रहे डिवाइस के आस-पास, ऐसा ऐक्सेस पॉइंट होना चाहिए जो वाई-फ़ाई आरटीटी (IEEE 802.11mc) के साथ काम करता हो.
सीटीएस टेस्ट को इनके ज़रिए ट्रिगर किया जा सकता है:
atest WifiRttTest
कैलिब्रेशन
वाई-फ़ाई आरटीटी की परफ़ॉर्मेंस अच्छी हो, इसके लिए 802.11mc या 802.11az प्रोटोकॉल में दिखाई गई रेंज, परफ़ॉर्मेंस इंडिकेटर (केपीआई) में सटीक होनी चाहिए, जैसा कि इस सेक्शन में बताया गया है.
11mc प्रोटोकॉल के लिए, सूची में दी गई बैंडविड्थ (80 MHz, 40 MHz, 20 MHz) और बर्स्ट साइज़ 8 पर, रेंज के अनुमान के लिए केपीआई को, गड़बड़ी के 90वें प्रतिशत में यह सटीक जानकारी मिल सकती है.
- 80 मेगाहर्ट्ज़: 2 मीटर
- 40 मेगाहर्ट्ज़: 4 मीटर
- 20 मेगाहर्ट्ज़: 8 मीटर
11az प्रोटोकॉल के लिए, ऐंटेना एमआईएमओ कॉन्फ़िगरेशन और लंबे ट्रेनिंग फ़ील्ड (एलटीएफ़) की दोहराया जाने वाली प्रोसेस का असर, सटीक रीडिंग पर पड़ता है. एक सामान्य मोबाइल फ़ोन (दो ऐंटीना) और ऐक्सेस पॉइंट (चार ऐंटीना) के साथ, सिस्टम में 2x4 एमआईएमओ कॉन्फ़िगरेशन होता है. इस तरह के कॉन्फ़िगरेशन के लिए, दो के एलटीएफ़ दोहराव फ़ैक्टर का इस्तेमाल किया जाता है. साथ ही, सूची में दी गई बैंडविड्थ (160 एमएचज़, 80 एमएचज़, 40 एमएचज़, और 20 एमएचज़) पर, रेंज के अनुमान के लिए केपीआई को गड़बड़ी के 90वें प्रतिशत में यह सटीक जानकारी मिल सकती है.
- 160 मेगाहर्ट्ज़: 0.5 मीटर
- 80 मेगाहर्ट्ज़: 1 मीटर
- 40 मेगाहर्ट्ज़: 2 मीटर
- 20 मेगाहर्ट्ज़: 4 मीटर
यह पक्का करने के लिए कि सुविधा सही तरीके से लागू की गई है, कैलिब्रेशन की जांच करना ज़रूरी है.
इसके लिए, ज़मीनी हकीकत की तुलना, आरटीटी की अनुमानित रेंज से करके की जा सकती है. बुनियादी शर्तों के पालन के लिए, आपको ऐसे डिवाइस से अपने समाधान की पुष्टि करनी चाहिए जिसे आरटीटी के लिए कैलिब्रेट किया जाता है. रेंज कैलिब्रेशन की जांच, इन स्थितियों में की जानी चाहिए:
- एक बड़ी खुली प्रयोगशाला या ऐसा गलियारा जिसमें धातु की बहुत ज़्यादा चीज़ें न हों जिससे मल्टी-पाथ की असामान्य रूप से बहुत ज़्यादा घटनाएं हो सकती हैं.
- कम से कम 25 मीटर तक का लाइन-ऑफ़-साइट (एलओएस) ट्रैक या पाथ.
- ट्रैक के एक छोर से दूसरे छोर तक, 0.5 मीटर के अंतराल पर मार्कर.
ट्रैक के एक छोर पर, फ़र्श से 20 सेंटीमीटर ऊपर, आरटीटी की सुविधा वाले ऐक्सेस पॉइंट को सुरक्षित रखने की जगह. साथ ही, Android फ़ोन (या जांच में शामिल किसी अन्य Android मोबाइल डिवाइस) के लिए, ट्रैक के साथ-साथ घुमाया जा सकने वाला माउंट, जिसे फ़र्श से 20 सेंटीमीटर ऊपर, 0.5 मीटर मार्कर के साथ अलाइन किया जा सकता है.
हर मार्कर पर, ऐक्सेस पॉइंट से दूरी के साथ-साथ 50 रेंजिंग नतीजे रिकॉर्ड होने चाहिए. रेंज का औसत और वैरिएंस जैसे आंकड़ों का हिसाब, हर मार्कर की पोज़िशन के लिए लगाया जाना चाहिए.
पांचवें चरण के नतीजों से, अनुमानित रेंज (y-ऐक्सिस) के मुकाबले ग्राउंड ट्रूथ (x-ऐक्सिस) के लिए चार्ट बनाया जा सकता है. साथ ही, सबसे सही रिग्रेशन लाइन का अनुमान लगाया जा सकता है. सही डिवाइस कैलिब्रेशन का नतीजा, y-ऐक्सिस पर ग्रेडिएंट 1.0 की लाइन और ऑफ़सेट 0.0 मीटर होगा. अगर ये वैल्यू, इनसे जुड़े बैंडविथ के केपीआई के अंदर हैं, तो आपको इनमें से किसी एक वैल्यू को इस्तेमाल करना चाहिए. अगर नतीजे केपीआई के दायरे से बाहर हैं, तो डिवाइस की सुविधा को फिर से कैलिब्रेट किया जाना चाहिए, ताकि नतीजे केपीआई की स्पेसिफ़िकेशन के दायरे में आ सकें.