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

شما میتوانید نمایش و قابلیت لمس اعلانهای مربوط به اختلال را در طول ناوبری فعال با استفاده از setTrafficPromptsEnabled کنترل کنید، که همچنین نمایش اعلانها در طول مسیرها و نمایش هشدارهای خودکار را هنگام نزدیک شدن کاربر به یک اختلال کنترل میکند.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
هشدارهای خودکار اختلال با رأیگیری در طول ناوبری فعال
در طول ناوبری فعال، وقتی کاربر در طول مسیر به اختلالی نزدیک میشود، پیامی حاوی اطلاعات مربوط به اختلال و دکمههایی برای رأی دادن در مورد وجود یا عدم وجود اختلال ظاهر میشود. آرای ارسالی توسط کاربران توسط گوگل پردازش میشود و ممکن است برای سایر کاربران Google Maps و Navigation SDK روی نقشه نمایش داده شود و همچنین برای تعیین ادامه نمایش اختلال استفاده شود.

شما میتوانید نمایش اعلانهای هشدار را در طول ناوبری فعال با استفاده از setTrafficPromptsEnabled پیکربندی کنید، که نمایش فراخوانها را در طول مسیرها نیز کنترل میکند.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
گزارش اختلال در طول ناوبری فعال
در حالت ناوبری فعال، دکمهای در رابط کاربری ناوبری ظاهر میشود که به کاربران امکان میدهد اختلالات جدید در طول مسیر خود را گزارش دهند. وقتی کاربر روی این دکمه ضربه میزند، منویی با انواع اختلالات موجود برای گزارش ظاهر میشود. گزارشهایی که کاربران ارسال میکنند توسط گوگل پردازش میشوند و ممکن است برای سایر کاربران 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 به درستی روی عناصر رابط کاربری سفارشی شما در حین نمایش لایهبندی شده باشد. اگر نمیتوانید از کنترلهای سفارشی استفاده کنید، از API Prompt Visibility برای مدیریت تداخلهای احتمالی رابط کاربری استفاده کنید.API قابلیت مشاهده سریع (آزمایشی)
API Prompt Visibility به شما کمک میکند تا از تداخل بین عناصر رابط کاربری تولید شده توسط 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)