मोटा स्थान प्राप्त करें

उपयोगकर्ता की गोपनीयता का सम्मान करने के लिए, ऐप डेवलपर्स को केवल मोटे स्थान की अनुमति का अनुरोध करने के लिए प्रोत्साहित किया जाता है। जिन ऐप्स को अनुमानित मोटे स्थिति की आवश्यकता होती है, वे आमतौर पर नेटवर्क लोकेशन (FLP) का उपयोग करते हैं क्योंकि यह तेज़ है और कम बिजली की खपत करता है।

एंड्रॉइड-आधारित मोबाइल उपकरणों की तुलना में, ऑटोमोटिव ऐप्स में नेटवर्क स्थान अधिक चुनौतीपूर्ण हो सकता है। आप दो Android API का उपयोग कर सकते हैं:

  • LocationManager API के लिए आपको पसंदीदा स्थान प्रदाता को स्पष्ट रूप से पहचानने की आवश्यकता है।

  • फ़्यूज्ड लोकेशन प्रोवाइडर (FLP) की शुरुआत के साथ Google Play Services API आपके लिए स्थान के साथ काम करने का एक अधिक सरल तरीका प्रदान करता है।

कई ऑटोमोटिव ऐप एलएम के बजाय Google Play Services (GPS) API से FLP का उपयोग करते हैं। एफएलपी वाहन के लिए आवश्यक स्थान अनुरोध मानदंड और नीतियों (शक्ति और सटीकता) के आधार पर इष्टतम स्थान प्रदाता का चयन करता है।

इसके बजाय आप स्पष्ट रूप से अनुरोध करना और एलएम में NETWORK_PROVIDER उपयोग करना चुन सकते हैं, साथ ही अच्छे पदों के लिए GPS_PROVIDER उपयोग कर सकते हैं, जो android.permission.ACCESS_FINE_LOCATION अनुमतियों का उपयोग करता है। एपीआई 31 में, FUSED_PROVIDER , जो पहले केवल जीपीएस एपीआई के माध्यम से पहुंच योग्य था, अब एलएम के लिए स्थान प्रदाता के रूप में उपलब्ध है। आप FusedLocationProvider.java में FLP का अधिक सरल कार्यान्वयन देख सकते हैं।

हालाँकि GPS_PROVIDER का उपयोग केवल मोटे अनुमति अधिकारों के साथ करना संभव है, लेकिन फ्रेमवर्क अपेक्षाओं के साथ संरेखित करने के लिए कृत्रिम रूप से सटीकता को कम कर देता है, एंड्रॉइड फोन को लक्षित करने वाले डेवलपर्स के लिए इसका कोई मतलब नहीं है क्योंकि समग्र उपलब्धता खराब है और अक्सर मोटे स्थान प्राप्त करने में धीमी होती है।

ऑटोमोटिव में नेटवर्क स्थान

एंड्रॉइड फोन (Google मोबाइल सेवाओं के साथ) पर उपयोग किया जाने वाला NETWORK_PROVIDER केवल पास के सेल टावरों के आधार पर स्थान निर्धारित करने से लेकर वाई-फाई एक्सेस पॉइंट या यहां तक ​​कि ब्लूटूथ (बीटी) बीकन का उपयोग करने के लिए भी बदल गया है। NETWORK_PROVIDER के उपयोग के लिए डेटा कनेक्शन की आवश्यकता हो सकती है।

ऑटोमोटिव ऐप्स के लिए, डिवाइस की बाधाएँ भिन्न होती हैं। क्योंकि जीएनएसएस सामान्य रूप से चालू है, बढ़ी हुई बिजली और बैटरी के उपयोग के कारण कोई जुर्माना नहीं लगता है। परिणामस्वरूप, IVI अपटाइम से समझौता नहीं किया जाता है। हम अपने सर्वर के साथ डेटा के आदान-प्रदान को कम करने का प्रयास करते हैं।

इसलिए बहुत सारे ऐप्स सीधे एलएम के बजाय प्ले एपीआई से एफएलपी का उपयोग करते हैं क्योंकि एफएलपी स्वचालित रूप से हुड के तहत स्थान अनुरोध मानदंड/नीतियों (अर्थात् शक्ति और सटीकता) को पूरा करने में सक्षम स्थान प्रदाता का उपयोग करके स्मार्ट चीज़ करता है।

मोबाइल उपकरणों के विपरीत, वाहन शायद ही कभी एक स्थान से दूसरे स्थान पर जाते दिखाई देते हैं। वाहन की स्थिति अधिकांश समय हुड के नीचे ज्ञात होती है।

नेटवर्क स्थान प्रदाता

अधिकांश वाहन सेल आईडी (और सिग्नल शक्ति) पर आवश्यक जानकारी प्राप्त करने के लिए आवश्यक टेलीफोनी एपीआई लागू नहीं करते हैं। परिणामस्वरूप, और क्योंकि हम डेटा उपयोग को कम करते हैं, एनएलपी का कोई अतिरिक्त कार्यात्मक कार्यान्वयन प्रदान नहीं किया जाता है।

फ़्यूज़्ड स्थान प्रदाता

मोबाइल एफएलपी, नेटवर्क और जीपीएस प्रदाताओं का उचित रूप से उपयोग करने के अलावा, स्थानों की गुणवत्ता को और बढ़ाने के लिए अन्य सेंसर से जानकारी को फ्यूज करता है। दूसरी ओर ऑटोमोटिव के एफएलपी का वर्तमान कार्यान्वयन उपरोक्त मान्यताओं का लाभ उठाता है और हर समय एक अंतर्निहित स्रोत के रूप में GPS_PROVIDER उपयोग करता है। यह जीएनएसएस से पदों में हेराफेरी करता है, जरूरत पड़ने पर कुछ त्रुटियों को और अधिक गलत बना देता है। उदाहरण के लिए, जब किसी ग्राहक को मोटे स्थान प्रदान किए जाते हैं।

इस प्रकार, बहुत कम मामलों में पहली स्थिति उपलब्ध होने में सामान्य से अधिक समय लग सकता है। उदाहरण के लिए, पहली बार किसी वाहन का या, अधिक सटीक रूप से कहें तो, उसके स्थान उपप्रणाली का उपयोग किया जाता है या खींचे जाने के बाद।

मोबाइल और ऑटोमोटिव उपयोग को लक्षित करने के लिए ऐप्स डिज़ाइन करें

हम अनुशंसा करते हैं कि मोबाइल और ऑटोमोटिव उपकरणों को लक्षित करने वाले ऐप्स जिन्हें उच्च गुणवत्ता की सटीकता की आवश्यकता नहीं है, केवल android.permission.ACCESS_COARSE_LOCATION का अनुरोध करें और उपलब्ध होने पर FLP का उपयोग करें। वैकल्पिक रूप से, अंतिम उपाय के रूप में, समान अनुमतियों के साथ सीधे GPS_PROVIDER का उपयोग करें। एपीआई अपेक्षाओं के साथ संरेखित करने के लिए ढांचा अंतर्निहित जीएनएसएस स्थिति की सटीकता को कम कर देता है। अधिक जानने के लिए, सटीकता देखें।

इसके अलावा, इन ऐप्स को अपने मेनिफ़ेस्ट में स्पष्ट रूप से android.hardware.location.network सुविधा को वैकल्पिक घोषित करना होगा। उदाहरण के लिए:

<uses-feature android:name="android.hardware.location.network" android:required="false" />

यह दृष्टिकोण सभी कार्यक्षेत्रों के उपकरणों के साथ अधिकतम अनुकूलता सुनिश्चित करता है और इसलिए, जरूरत पड़ने पर स्थिति प्राप्त करने के लिए बिना किसी कोड अंतर के अधिकतम ऐप उपलब्धता सुनिश्चित करता है।