وقتی ناوبری فعال باشد، کیت توسعه نرمافزار ناوبری اندروید (Navigation SDK) یک کنترل محدودیت سرعت در گوشه پایین سمت چپ نقشه نمایش میدهد که محدودیت سرعت فعلی را نشان میدهد. اگر کاربری از سرعت مجاز تجاوز کند، این کنترل گسترش مییابد تا یک سرعتسنج در کنار نمایش محدودیت سرعت نمایش داده شود و وقتی سرعت به یک آستانه خاص برسد، هشدارهایی را فعال میکند.
به طور پیشفرض، کیت توسعه نرمافزار ناوبری (Navigation SDK) هنگامی که کاربر از سرعت مجاز ۵ مایل در ساعت (یا ۱۰ کیلومتر در ساعت) تجاوز کند، یک هشدار جزئی سرعت ایجاد میکند و رنگ متن سرعتسنج را به قرمز تغییر میدهد. هنگامی که کاربر از سرعت مجاز ۱۰ مایل در ساعت (یا ۲۰ کیلومتر در ساعت) تجاوز کند، یک هشدار اصلی سرعت ایجاد میکند و رنگ پسزمینه سرعتسنج را به قرمز تغییر میدهد.
شما میتوانید هم آستانهی فعال شدن هشدارها و هم رنگ متن و پسزمینهی نمایش داده شده توسط سرعتسنج را سفارشی کنید. همچنین میتوانید از کیت توسعهی نرمافزار ناوبری (Navigation SDK) برای در دسترس قرار دادن اطلاعات سرعت کاربر مطابق با آستانههای تعیین شده استفاده کنید. به عنوان مثال، میتوانید اطلاعات سرعت را در اختیار اپراتورهای همسفری قرار دهید تا به آنها در تشویق کاربرانشان به رعایت محدودیت سرعت و بهبود ایمنی کمک کنید.
آستانههای هشدار سرعت را سفارشی کنید
شما میتوانید آستانه هشدار سرعت را برای هشدارهای سرعت جزئی و کلی به صورت درصدی از سرعت مجاز فعلی تنظیم کنید. همچنین میتوانید مشخص کنید که چه مدت از آستانه تجاوز شده باشد تا نقشه هشدار را نمایش دهد.
مثال کد زیر آستانه هشدار سرعت جزئی را پنج درصد بالاتر از حد مجاز سرعت و آستانه هشدار سرعت عمده را ده درصد بالاتر از حد مجاز سرعت تعیین میکند. این کد مشخص میکند که نقشه پس از عبور از آستانه هشدار به مدت پنج ثانیه، هشداری را نمایش دهد.
float minorSpeedAlertThresholdPercentage = 5; float
majorSpeedAlertThresholdPercentage = 10; double severityUpgradeDurationSeconds =
5;
// Configure SpeedAlertOptions SpeedAlertOptions.Builder
speedAlertOptionsBuilder = new SpeedAlertOptions.Builder();
speedAlertOptionsBuilder.setSpeedAlertThresholdPercentage(
SpeedAlertSeverity.MINOR, minorSpeedAlertThresholdPercentage);
speedAlertOptionsBuilder.setSpeedAlertThresholdPercentage(
SpeedAlertSeverity.MAJOR, majorSpeedAlertThresholdPercentage);
speedAlertOptionsBuilder.setSeverityUpgradeDurationSeconds(severityUpgradeDurationSeconds);
// Set SpeedAlertOptions to Navigator.
navigator.setSpeedAlertOptions(speedAlertOptionsBuilder.build());
نحوه نمایش هشدارهای سرعت توسط سرعتسنج را سفارشی کنید
برای اینکه هشدارهای سرعت توجه بیشتری را جلب کنند، میتوانید رنگهای نمایشگر سرعتسنج را برای هر سطح هشدار سفارشی کنید.
جدول زیر رنگهای پیشفرض برای هشدارهای سرعت در کلاس NavigationView را نشان میدهد:
| عنصر | رنگ |
|---|---|
| هشدار سرعت جزئیرنگ پسزمینهحالت روز | 0xffffff (سفید) |
| هشدار سرعت جزئیرنگ پسزمینهحالت شب | 0x000000 |
| هشدار سرعت جزئیرنگ متنحالت روز | 0xd93025 |
| هشدار سرعت جزئیرنگ متنحالت شب | 0xd93025 |
| هشدار سرعت اصلیرنگ پسزمینهحالت روز | 0xd93025 |
| هشدار سرعت اصلیرنگ پسزمینهحالت شب | 0xd93025 |
| هشدار سرعت اصلیرنگ متنحالت روز | 0xffffff (سفید) |
| هشدار سرعت اصلی، رنگ متن، حالت شب | 0xffffff (سفید) |
شما میتوانید متن و رنگ پسزمینه سرعتسنج را برای هشدارهای جزئی و کلی سرعت مشخص کنید:
SpeedometerUiOptions speedometerUiOptions = new SpeedometerUiOptions.Builder()
.setBackgroundColorDayMode(MINOR, some_color)
.setBackgroundColorNightMode(MINOR, some_color) .setTextColorDayMode(MINOR,
some_color) .setTextColorNightMode(MINOR, some_color)
.setBackgroundColorDayMode(MAJOR, some_color)
.setBackgroundColorNightMode(MAJOR, some_color) .setTextColorDayMode(MAJOR,
some_color) .setTextColorNightMode(MAJOR, some_color) .build();
// Set SpeedometerUiOptions to NavigationView.
navigationView.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
navigationView.setSpeedometerEnabled(true);
// Set SpeedometerUiOptions to SupportNavigationFragment.
supportNavigationFragment.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
supportNavigationFragment.setSpeedometerEnabled(true);
دریافت اطلاعات سرعت از کاربران
اگر برنامه شما نیاز به اشتراکگذاری اطلاعات در مورد سرعت کاربر دارد، میتوانید از Navigation SDK نیز برای در دسترس قرار دادن اطلاعات سرعت کاربر استفاده کنید. به عنوان مثال، این میتواند برای برنامههای اشتراک سفر مفید باشد که در آن یک اپراتور ممکن است بخواهد سرعت بیش از حد کاربران را برای بهبود ایمنی رصد کند. این کار همچنین میتواند بدون نیاز به ارائه نمای ناوبری به کاربر در برنامه شما انجام شود.
برای مثال، مثال زیر اطلاعات سرعت را زمانی که سرعت به میزان مشخصی بیشتر از حد مجاز باشد، به اشتراک میگذارد:
// Existing flow for creating Navigator. NavigationApi.getNavigator();
// Set the SpeedAlertOptions for the MAJOR and MINOR alerts. (Note that the //
severityUpgradeDurationSeconds field is by design not used in this flow.)
SpeedAlertOptions speedAlertOptions = ...;
navigator.setSpeedAlertOptions(speedAlertOptions);
// Implement SpeedingListener. SpeedingListener speedingListener = new
SpeedingListener() { @Override public void onSpeedingUpdated(float
percentageAboveLimit, SpeedAlertSeverity speedAlertSeverity) { ... } };
// Set speedingListener to Navigator.
navigator.setSpeedingListener(speedingListener);