ضبط تنبيهات عدّاد السرعة

عند تمكين التنقل، تعرض حزمة SDK للتنقل لنظام التشغيل Android عنصر تحكم في تحديد السرعة أسفل الجانب الأيمن من الخريطة يعرض الحد الحالي للسرعة. في حال تجاوز السائق الحدّ الأقصى للسرعة، يتم توسيع عنصر التحكّم لعرض عدّاد السرعة بجانب عرض الحدّ الأقصى للسرعة وتشغيل التنبيهات عندما تصل السرعة إلى حدّ معيّن.

بشكل تلقائي، تُصدر حزمة تطوير البرامج (SDK) للتنقّل تنبيهًا بسيطًا للسرعة عندما يتجاوز السائق حد السرعة بمقدار 5 ميل في الساعة (أو 10 كم في الساعة)، ويغيِّر لون نص عدّاد السرعة إلى اللون الأحمر. يؤدي إلى إطلاق تنبيه كبير بشأن السرعة عندما يتجاوز السائق حد السرعة بمقدار 10 ميل في الساعة (أو 20 كم/ساعة)، ويغير لون خلفية عدّاد السرعة إلى اللون الأحمر.

ويمكنك تخصيص كلّ من الحدّ الأدنى لتشغيل التنبيهات وألوان النص والخلفية التي يعرضها عدّاد السرعة. كما يمكنك استخدام حزمة SDK للتنقل لإتاحة معلومات سرعة السائق بما يتوافق مع الحدود التي وضعتها. على سبيل المثال، يمكنك توفير معلومات السرعة لمشغلي خدمات مشاركة الرحلات لمساعدتهم على تشجيع السائقين على الالتزام بالحد الأقصى للسرعة وتحسين السلامة.

تخصيص الحدود الدنيا لتنبيهات السرعة

يمكنك تخصيص الحدّ الأدنى لتنبيه السرعة لكل من تنبيهات السرعة الصغيرة والكبيرة كنسبة مئوية عن حدّ السرعة للسرعة الحالية. يمكنك أيضًا تحديد المدة التي يتم خلالها تجاوز الحدّ الأدنى قبل أن تعرض الخريطة التنبيه.

يضبط مثال الرمز التالي الحد الأدنى لتنبيه السرعة الثانوي إلى خمسة في المائة أعلى من حد السرعة، والحد الأدنى لتنبيه سرعة رئيسية إلى 10 في المائة أعلى من حد السرعة. تحدد الخريطة أنّ الخريطة تعرض تنبيهًا بعد تجاوز الحدّ الأدنى للتنبيه لمدة خمس ثوانٍ.

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:

عنصراللون
MinorSpeedAlertBackgroundColorDayMode 0xlevel(white)
MinorSpeedAlertBackgroundColorNightMode 0×000000
MinorSpeedAlertTextColorDayMode 0xd93025
MinorSpeedAlertTextColorNightMode 0xd93025
MajorSpeedAlertBackgroundColorDayMode 0xd93025
MajorSpeedAlertBackgroundColorNightMode 0xd93025
MajorSpeedAlertTextColorDayMode 0xlevel(white)
MajorSpeedAlertTextColorNightMode 0xlevel(white)

يمكنك تحديد لون النص والخلفية لعدّاد السرعة لكلّ من تنبيهات السرعة الصغيرة والكبيرة:

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);

تلقّي معلومات عن السرعة من السائقين

إذا كان تطبيقك يتطلب مشاركة معلومات حول سرعة السائق، فيمكنك أيضًا استخدام حزمة 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);