پیکربندی اختلالات زمان واقعی
اختلالات بلادرنگ مجموعهای از ویژگیهایی هستند که به کاربران در مورد اختلالات در مسیرشان هشدار میدهند و به کاربران اجازه میدهند تا اختلالاتی را که با آن مواجه میشوند گزارش و تأیید کنند. نمونه هایی از اختلالات شامل تصادفات وسایل نقلیه، ازدحام ترافیک، حضور پلیس و دوربین های کنترل سرعت، ساخت و ساز، بسته شدن خطوط و شرایط آب و هوایی خاص است. این صفحه ویژگیهای اختلال بیدرنگ و گزینههای پیکربندی آنها را توضیح میدهد، از جمله ملاحظات مربوط به برنامههایی که از رابطهای کاربری ناوبری سفارشی استفاده میکنند.
ویژگی های اختلال در زمان واقعی
Navigation SDK شامل ویژگیهای اختلال بیدرنگ زیر به عنوان بخشی از تجربه اصلی ناوبری است:- پیامهای اختلال تعاملی در طول مسیرها .
- هشدارهای اختلال خودکار با رای دادن در طول ناوبری فعال .
- گزارش اختلال در حین پیمایش فعال
این ویژگی ها به صورت پیش فرض قابل تنظیم و فعال هستند. بخشهای زیر اطلاعات بیشتری درباره ویژگیها و گزینههای پیکربندی موجود ارائه میدهند.
پیامهای اختلال تعاملی در طول مسیرها
هنگامی که یک برنامه مسیری را در نمای کلی مسیر یا در حین ناوبری فعال نمایش می دهد، هر گونه اختلال فعلی به عنوان پیام در طول مسیر ظاهر می شود. Callout ها شامل نمادی هستند که نوع اختلال را نشان می دهد.

با استفاده از 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 برای مدیریت تداخلهای احتمالی UI استفاده کنید.Prompt Visibility API (تجربی)
Prompt Visibility API به شما کمک میکند از تداخل بین عناصر UI تولید شده توسط Navigation SDK و عناصر UI سفارشی خود جلوگیری کنید، با افزودن یک شنونده برای دریافت پاسخ تماس قبل از ظاهر شدن عنصر Navigation SDK UI و به محض حذف عنصر. میتوانید برای عناصر اختلال در زمان واقعی، از جمله کارتهای اطلاعات، درخواستها، و منوی گزارش اختلال - و همچنین برای سایر اعلانهای تولید شده توسط 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)