กำหนดค่าการหยุดชะงักแบบเรียลไทม์
การหยุดชะงักแบบเรียลไทม์คือชุดฟีเจอร์ที่แจ้งเตือนผู้ใช้เกี่ยวกับการหยุดชะงักตามเส้นทาง และอนุญาตให้ผู้ใช้รายงานและยืนยันการหยุดชะงักที่พบ ตัวอย่างการหยุดชะงัก ได้แก่ อุบัติเหตุจากยานพาหนะ การจราจรติดขัด การปรากฏตัวของตำรวจและกล้องจับความเร็ว การก่อสร้าง การปิดช่องทางจราจร และสภาพอากาศบางอย่าง หน้านี้จะอธิบายฟีเจอร์การหยุดชะงักแบบเรียลไทม์และตัวเลือกการกำหนดค่า รวมถึงข้อควรพิจารณาสำหรับแอปที่ใช้ UI การนำทางที่กำหนดเอง
ฟีเจอร์การหยุดชะงักแบบเรียลไทม์
Navigation SDK มีฟีเจอร์การหยุดชะงักแบบเรียลไทม์ต่อไปนี้ซึ่งเป็นส่วนหนึ่งของประสบการณ์การนำทางหลัก- คำบรรยายภาพการหยุดชะงักแบบอินเทอร์แอกทีฟตามเส้นทาง
- การแจ้งเตือนการหยุดชะงักอัตโนมัติพร้อมการโหวตระหว่างการนำทางที่ใช้งานอยู่
- การรายงานการหยุดชะงักระหว่างการนำทางที่ใช้งานอยู่
ฟีเจอร์เหล่านี้กำหนดค่าได้และเปิดใช้งานอยู่โดยค่าเริ่มต้น ส่วนต่อไปนี้จะให้ข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์และตัวเลือกการกำหนดค่าที่มี
คำบรรยายภาพการหยุดชะงักแบบอินเทอร์แอกทีฟตามเส้นทาง
เมื่อแอปแสดงเส้นทาง ไม่ว่าจะเป็นในภาพรวมเส้นทางหรือระหว่างการนำทางที่ใช้งานอยู่ การหยุดชะงักในปัจจุบันจะปรากฏเป็นคำบรรยายภาพตามเส้นทาง คำบรรยายภาพจะมีไอคอนที่ระบุประเภทการหยุดชะงัก
คุณสามารถควบคุมการแสดงคำบรรยายภาพการหยุดชะงักตามเส้นทางได้โดยใช้ setTrafficPromptsEnabled ซึ่งจะควบคุมการ แสดงการแจ้งเตือนอัตโนมัติเมื่อผู้ใช้เข้าใกล้การหยุดชะงัก
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
แสดงรายละเอียดการหยุดชะงักเมื่อผู้ใช้แตะคำบรรยายภาพ
ผู้ใช้สามารถแตะคำบรรยายภาพเพื่อแสดงการ์ดข้อมูลที่มีข้อมูลเพิ่มเติมเกี่ยวกับการหยุดชะงัก ซึ่งรวมถึงประเภทการหยุดชะงัก เวลาที่รายงานล่าสุด และในบางกรณี ตัวเลือกในการ โหวตว่าการหยุดชะงักยังคงอยู่หรือไม่ การ์ดข้อมูลที่อาจปรากฏมี 2 ประเภท ขึ้นอยู่กับว่าผู้ใช้กำลังใช้การนำทางที่ใช้งานอยู่หรือไม่ และตัวเลือกการกำหนดค่า จะแตกต่างกันไปในแต่ละประเภท
การ์ดข้อมูลคำบรรยายภาพในภาพรวมเส้นทางก่อนเริ่มการนำทางที่ใช้งานอยู่
เมื่อผู้ใช้แตะคำบรรยายภาพในภาพรวมเส้นทางก่อนเริ่มการนำทางที่ใช้งานอยู่ การ์ดข้อมูล จะปรากฏขึ้นพร้อมข้อมูลเพิ่มเติมเกี่ยวกับการหยุดชะงัก
คุณสามารถควบคุมความสามารถของผู้ใช้ในการแตะคำบรรยายภาพการหยุดชะงักในภาพรวมเส้นทางเพื่อแสดงข้อมูลเพิ่มเติมได้โดยใช้
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);
การรายงานการหยุดชะงักระหว่างการนำทางที่ใช้งานอยู่
ในโหมดการไปยังส่วนต่างๆ ที่ใช้งานอยู่ ปุ่มจะปรากฏใน UI การนำทางเพื่อให้ผู้ใช้รายงานการหยุดชะงักใหม่ตามเส้นทางได้ เมื่อผู้ใช้แตะปุ่ม เมนูที่มีประเภทการหยุดชะงักที่รายงานได้จะปรากฏขึ้น 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);
เพิ่มปุ่มรายงานที่กำหนดเอง
คุณสามารถเพิ่มปุ่มรายงานที่กำหนดเองลงใน UI การนำทางแทนปุ่มรายงานการหยุดชะงักมาตรฐานได้ เมื่อผู้ใช้คลิกปุ่มที่กำหนดเอง คุณสามารถทริกเกอร์การแสดงเมนูการรายงาน
ได้โดยเรียกใช้เมธอด 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());
ทำงานร่วมกับ UI การนำทางที่กำหนดเอง
หากการติดตั้งใช้งาน Navigation SDK ของคุณมีองค์ประกอบ UI ที่กำหนดเอง คุณต้องพิจารณาองค์ประกอบการหยุดชะงักแบบเรียลไทม์เพื่อหลีกเลี่ยงความขัดแย้ง
การจัดตำแหน่งปุ่มรายงาน
โดยค่าเริ่มต้น ปุ่มรายงานการหยุดชะงักจะอยู่ที่มุมล่างสุด/ด้านหลังของแผนที่ ซึ่งจะอยู่ทางด้านขวาสำหรับภาษาที่อ่านจากซ้ายไปขวา และด้านซ้ายสำหรับภาษาที่อ่านจากขวาไปซ้าย หากต้องการย้ายปุ่มรายงานเพื่อเพิ่มพื้นที่สำหรับองค์ประกอบ UI ที่กำหนดเอง ให้เพิ่มการควบคุมที่กำหนดเองBOTTOM_END_BELOW หรือ FOOTER ซึ่งจะเลื่อนตำแหน่งของปุ่มขึ้นบนหน้าจอ การวาง UI ที่กำหนดเองไว้ในการควบคุมที่กำหนดเองยังช่วยให้มั่นใจได้ว่าข้อความแจ้งที่ Navigation SDK แสดงจะซ้อนทับองค์ประกอบ UI ที่กำหนดเองอย่างถูกต้องขณะแสดง หากใช้การควบคุมที่กำหนดเองไม่ได้ ให้ใช้
Prompt Visibility API เพื่อจัดการความขัดแย้งของ UI ที่อาจเกิดขึ้น
Prompt Visibility API (ทดลอง)
Prompt Visibility API ช่วยให้คุณหลีกเลี่ยงความขัดแย้งระหว่างองค์ประกอบ UI ที่สร้างโดย Navigation SDK กับองค์ประกอบ UI ที่กำหนดเองของคุณเองได้โดยการเพิ่ม Listener เพื่อรับ Callback ก่อนที่องค์ประกอบ UI ของ Navigation SDK จะปรากฏขึ้นและทันทีที่องค์ประกอบถูกนำออก คุณสามารถรับ Callback สำหรับองค์ประกอบการหยุดชะงักแบบเรียลไทม์ ซึ่งรวมถึงการ์ดข้อมูล ข้อความแจ้ง และเมนูการรายงานการหยุดชะงัก รวมถึงการแจ้งเตือนอื่นๆ ที่สร้างโดย 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)