रीयल-टाइम में होने वाली रुकावटों को कॉन्फ़िगर करना
रीयल-टाइम में होने वाली रुकावटों की जानकारी देने वाली सुविधाओं का मकसद, उपयोगकर्ताओं को उनके रास्ते में आने वाली रुकावटों के बारे में सूचना देना है. साथ ही, उपयोगकर्ताओं को उन रुकावटों की शिकायत करने और उनकी पुष्टि करने की सुविधा देना है. बाधाओं के उदाहरणों में वाहन दुर्घटनाएं, ट्रैफ़िक जाम, पुलिस और स्पीड कैमरे की मौजूदगी, निर्माण, लेन बंद होना, और मौसम की कुछ स्थितियां शामिल हैं. इस पेज पर, रीयल-टाइम में रुकावट की जानकारी देने वाली सुविधाओं और उन्हें कॉन्फ़िगर करने के विकल्पों के बारे में बताया गया है. इसमें उन ऐप्लिकेशन के बारे में भी बताया गया है जो कस्टम नेविगेशन यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करते हैं.
बाधा की जानकारी देने वाली रीयल-टाइम सुविधाएं
Navigation SDK में, रास्ते में किसी तरह की रुकावट की जानकारी देने वाली ये सुविधाएं शामिल हैं. ये सुविधाएं, नेविगेशन की मुख्य सुविधा के साथ काम करती हैं:- रास्तों पर किसी तरह की रुकावट वाले इंटरैक्टिव कॉलआउट.
- नेविगेशन चालू रहने के दौरान, सड़क बंद होने की सूचनाएं अपने-आप मिलती हैं. साथ ही, सड़क बंद होने की पुष्टि करने के लिए वोटिंग की सुविधा भी मिलती है.
- नेविगेशन चालू रहने के दौरान, रास्ते में आने वाली रुकावटों की जानकारी देना.
इन सुविधाओं को कॉन्फ़िगर किया जा सकता है. ये डिफ़ॉल्ट रूप से चालू रहती हैं. यहां दिए गए सेक्शन में, सुविधाओं और कॉन्फ़िगरेशन के उपलब्ध विकल्पों के बारे में ज़्यादा जानकारी दी गई है.
रास्तों पर रुकावटों के बारे में इंटरैक्टिव कॉलआउट
जब कोई ऐप्लिकेशन, रास्ते की खास जानकारी या नेविगेशन के दौरान कोई रास्ता दिखाता है, तो रास्ते में आने वाली कोई भी मौजूदा रुकावट, रास्ते के साथ कॉलआउट के तौर पर दिखती है. कॉलआउट में एक आइकॉन होता है, जिससे रुकावट के टाइप के बारे में पता चलता है.
setTrafficPromptsEnabled का इस्तेमाल करके, रास्ते में होने वाली रुकावटों के कॉलआउट दिखने की सुविधा को कंट्रोल किया जा सकता है. इससे किसी रुकावट के पास पहुंचने पर, उपयोगकर्ता को अपने-आप दिखने वाली सूचनाओं को भी कंट्रोल किया जा सकता है.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
जब कोई उपयोगकर्ता कॉलआउट पर टैप करता है, तब रुकावट की जानकारी दिखाएं
उपयोगकर्ता, कॉलआउट पर टैप करके जानकारी देने वाला कार्ड देख सकते हैं. इसमें रुकावट के बारे में ज़्यादा जानकारी होती है. जैसे, रुकावट किस तरह की है, इसे आखिरी बार कब रिपोर्ट किया गया था. कुछ मामलों में, यह वोट करने का विकल्प भी होता है कि रुकावट अब भी मौजूद है या नहीं. दो तरह के जानकारी वाले कार्ड दिख सकते हैं. ये इस बात पर निर्भर करते हैं कि उपयोगकर्ता नेविगेशन का इस्तेमाल कर रहा है या नहीं. साथ ही, हर टाइप के लिए कॉन्फ़िगरेशन के विकल्प अलग-अलग होते हैं.
नेविगेशन शुरू करने से पहले, रास्ते की खास जानकारी देने वाले कॉलआउट सूचना कार्ड
जब कोई उपयोगकर्ता, नेविगेशन शुरू करने से पहले, रास्ते की खास जानकारी वाले मैप पर मौजूद कॉलआउट पर टैप करता है, तो उसे एक सूचना कार्ड दिखता है. इसमें रास्ते में आने वाली रुकावट के बारे में ज़्यादा जानकारी होती है.
setTrafficIncidentCardsEnabled का इस्तेमाल करके, उपयोगकर्ताओं को रास्ते की खास जानकारी में रुकावटों के कॉलआउट टैप करने की सुविधा को कंट्रोल किया जा सकता है, ताकि वे ज़्यादा जानकारी देख सकें.
// Using the SupportNavigationFragment mNavFragment.setTrafficIncidentCardsEnabled(true); // Using the NavigationView navigationView.setTrafficIncidentCardsEnabled(true);
नेविगेशन के दौरान, कॉलआउट की जानकारी देने वाले कार्ड
जब नेविगेशन के दौरान किसी रास्ते पर रुकावट की जानकारी देने वाला कॉलआउट दिखता है, तो उपयोगकर्ता उस पर टैप कर सकते हैं. इससे उन्हें रुकावट के बारे में ज़्यादा जानकारी देने वाला कार्ड दिखता है. इसमें रुकावट की वजह, आखिरी बार इसकी शिकायत कब की गई थी, और रुकावट अब भी मौजूद है या नहीं, इस बारे में वोट करने के बटन शामिल होते हैं. उपयोगकर्ताओं के सबमिट किए गए वोटों को Google प्रोसेस करता है. साथ ही, इन्हें Google Maps और Navigation SDK इस्तेमाल करने वाले अन्य लोगों के लिए मैप पर दिखाया जा सकता है. इनका इस्तेमाल यह तय करने के लिए भी किया जाता है कि रुकावट की जानकारी दिखानी है या नहीं.
नेविगेशन के दौरान, रुकावटों के कॉलआउट दिखने और उन पर टैप करने की सुविधा को कंट्रोल किया जा सकता है. इसके लिए, setTrafficPromptsEnabled का इस्तेमाल करें. इससे रास्तों पर कॉलआउट दिखने और उपयोगकर्ता के किसी रुकावट के पास पहुंचने पर अपने-आप दिखने वाली सूचनाओं को भी कंट्रोल किया जा सकता है.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
नेविगेशन चालू रहने के दौरान, रास्ते में आने वाली रुकावटों के बारे में अपने-आप सूचनाएं पाने और वोट करने की सुविधा
नेविगेशन चालू होने के दौरान, जब कोई व्यक्ति रास्ते में किसी रुकावट के पास पहुंचता है, तो उसे एक प्रॉम्प्ट दिखता है. इसमें रुकावट के बारे में जानकारी होती है. साथ ही, यह वोट करने के लिए बटन होते हैं कि क्या रुकावट अब भी मौजूद है. उपयोगकर्ताओं के सबमिट किए गए वोटों को Google प्रोसेस करता है. साथ ही, इन्हें Google Maps और Navigation SDK इस्तेमाल करने वाले अन्य लोगों के लिए मैप पर दिखाया जा सकता है. इनका इस्तेमाल यह तय करने के लिए भी किया जाता है कि रुकावट की जानकारी दिखानी है या नहीं.
नेविगेशन चालू होने के दौरान, सूचना वाले प्रॉम्प्ट के दिखने की सुविधा को कॉन्फ़िगर किया जा सकता है. इसके लिए, setTrafficPromptsEnabled का इस्तेमाल करें. इससे रास्तों के साथ कॉलआउट के दिखने की सुविधा को भी कंट्रोल किया जा सकता है.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
नेविगेशन चालू रहने के दौरान, रास्ते में आने वाली रुकावटों की जानकारी देना
ऐक्टिव नेविगेशन मोड के दौरान, नेविगेशन यूज़र इंटरफ़ेस (यूआई) पर एक बटन दिखता है. इससे उपयोगकर्ता, रास्ते में आने वाली नई समस्याओं की शिकायत कर सकते हैं. जब कोई उपयोगकर्ता बटन पर टैप करता है, तो उसे एक मेन्यू दिखता है. इसमें रुकावट की उन सभी तरह की समस्याओं की जानकारी होती है जिनकी शिकायत की जा सकती है. उपयोगकर्ताओं की ओर से सबमिट की गई रिपोर्ट को Google प्रोसेस करता है. साथ ही, इन्हें Google Maps और Navigation SDK का इस्तेमाल करने वाले अन्य लोगों के लिए मैप पर दिखाया जा सकता है.
स्टैंडर्ड रिपोर्टिंग बटन दिखाना या छिपाना
नेविगेशन चालू होने के दौरान, स्टैंडर्ड रिपोर्टिंग बटन की दृश्यता को कॉन्फ़िगर किया जा सकता है. इसके लिए, setReportIncidentButtonEnabled का इस्तेमाल करें.
// Enables the incident reporting button to show in situations where incident // reporting is possible. // Using the SupportNavigationFragment mNavFragment.setReportIncidentButtonEnabled(true); // Using the NavigationView navigationView.setReportIncidentButtonEnabled(true);
पसंद के मुताबिक रिपोर्टिंग बटन जोड़ना
स्टैंडर्ड डिसरप्शन रिपोर्टिंग बटन की जगह, नेविगेशन यूज़र इंटरफ़ेस (यूआई) में कस्टम रिपोर्टिंग बटन जोड़ा जा सकता है. जब उपयोगकर्ता कस्टम बटन पर क्लिक करता है, तब showReportIncidentsPanel तरीके को कॉल करके, शिकायत करने वाले मेन्यू को दिखाया जा सकता है. कस्टम रिपोर्टिंग बटन जोड़ने से पहले, पुष्टि करें कि ऐप्लिकेशन में नेविगेशन चालू हो. साथ ही, उपयोगकर्ता उस देश में हो जहां रिपोर्टिंग की सुविधा चालू है. इसके लिए, isIncidentReportingAvailable को कॉल करें. अगर इनमें से कोई भी शर्त पूरी नहीं होती है, तो रिपोर्टिंग मेन्यू नहीं दिखेगा.
Button customReportIncidentButton = findViewById(R.id.custom_reporting_button); // Check if reporting is available before displaying your button customReportIncidentButton.setVisibility( navigationView.isReportingAvailable ? View.VISIBLE : View.GONE); // Trigger the reporting flow if the button is clicked customReportIncidentButton.setOnClickListener(v -> navigationView.showReportIncidentsPanel());
कस्टम नेविगेशन यूज़र इंटरफ़ेस (यूआई) के साथ काम करना
अगर आपने Navigation SDK टूल को लागू करते समय कस्टम यूज़र इंटरफ़ेस (यूआई) एलिमेंट शामिल किए हैं, तो आपको टकराव से बचने के लिए, रीयल-टाइम में होने वाली रुकावटों के एलिमेंट को ध्यान में रखना होगा.
रिपोर्टिंग बटन की पोज़िशन
डिफ़ॉल्ट रूप से, रुकावट की जानकारी देने वाला बटन, मैप के सबसे नीचे/आखिरी कोने में होता है. बाईं से दाईं ओर लिखी जाने वाली भाषाओं के लिए, यह बटन दाईं ओर होता है. वहीं, दाईं से बाईं ओर लिखी जाने वाली भाषाओं के लिए, यह बटन बाईं ओर होता है. अगर आपको कस्टम यूज़र इंटरफ़ेस (यूआई) एलिमेंट के लिए जगह बनाने के लिए, रिपोर्टिंग बटन को दूसरी जगह ले जाना है, तोBOTTOM_END_BELOW या FOOTER कस्टम कंट्रोल जोड़ें. इससे बटन की जगह स्क्रीन पर ऊपर की ओर हो जाएगी. कस्टम कंट्रोल में अपने कस्टम यूज़र इंटरफ़ेस (यूआई) रखने से यह भी पक्का होता है कि Navigation SDK की ओर से दिखाए गए सभी प्रॉम्प्ट, आपके कस्टम यूज़र इंटरफ़ेस (यूआई) एलिमेंट के ऊपर सही तरीके से लेयर किए गए हों. अगर कस्टम कंट्रोल का इस्तेमाल नहीं किया जा सकता, तो यूज़र इंटरफ़ेस (यूआई) से जुड़ी संभावित समस्याओं को मैनेज करने के लिए, Prompt Visibility API का इस्तेमाल करें.
Prompt Visibility API (Experimental)
प्रॉम्प्ट दिखाने या छिपाने से जुड़ा एपीआई, Navigation SDK से जनरेट हुए यूज़र इंटरफ़ेस (यूआई) एलिमेंट और आपके कस्टम यूज़र इंटरफ़ेस (यूआई) एलिमेंट के बीच होने वाले टकरावों से बचने में आपकी मदद करता है. इसके लिए, यह एक लिसनर जोड़ता है. इससे Navigation SDK का यूज़र इंटरफ़ेस (यूआई) एलिमेंट दिखने से पहले और एलिमेंट के हटते ही, आपको कॉलबैक मिलता है. आपको रीयल-टाइम में रुकावट डालने वाले एलिमेंट के लिए, कॉलबैक मिल सकते हैं. इनमें जानकारी वाले कार्ड, प्रॉम्प्ट, और रुकावट की शिकायत करने वाला मेन्यू शामिल है. साथ ही, आपको Navigation SDK से जनरेट होने वाली अन्य सूचनाएं भी मिल सकती हैं.// Sample listener val listener: PromptVisibilityChangedListener = { isVisible -> if (isVisible) { customFab.visibility = false customFooter.visibility = false moveSomeOtherThingsAround() } else { customFab.visibility = true customFooter.visibility = true moveSomeThingsBackToWhereTheyWereBefore() } } // Inside onCreate() navigationView.addPromptVisibilityChangedListener(listener) // Inside onDestroy() navigationView.removePromptVisibilityChangedListener(listener)