Mengonfigurasi pemberitahuan speedometer

Saat navigasi diaktifkan, Navigation SDK for Android akan menampilkan kontrol batas kecepatan di sudut kiri bawah peta yang menampilkan batas kecepatan saat ini. Jika pengguna melebihi batas kecepatan, kontrol akan diperluas untuk menampilkan speedometer di samping tampilan batas kecepatan dan memicu pemberitahuan saat kecepatan mencapai batas tertentu.

Secara default, Navigation SDK memicu peringatan kecepatan kecil saat pengguna melebihi batas kecepatan sebesar 5 mph (atau 10 kph), dan mengubah warna teks speedometer menjadi merah. Hal ini memicu notifikasi kecepatan utama saat pengguna melebihi batas kecepatan sebesar 10 mph (atau 20 kph), dan mengubah warna latar belakang speedometer menjadi merah.

Anda dapat menyesuaikan nilai minimum untuk memicu pemberitahuan serta teks dan warna latar belakang yang ditampilkan spidometer. Anda juga dapat menggunakan Navigation SDK untuk menyediakan informasi kecepatan pengguna sesuai dengan nilai minimum yang telah ditetapkan. Misalnya, Anda dapat menyediakan informasi kecepatan bagi operator transportasi online untuk membantu mereka mendorong pengguna agar mematuhi batas kecepatan dan meningkatkan keselamatan.

Menyesuaikan nilai minimum untuk notifikasi kecepatan

Anda dapat menyesuaikan nilai minimum pemberitahuan kecepatan untuk pemberitahuan kecepatan kecil dan besar sebagai persentase dari batas kecepatan saat ini. Anda juga dapat menentukan berapa lama ambang batas terlampaui sebelum peta menampilkan pemberitahuan.

Contoh kode berikut menetapkan nilai minimum untuk notifikasi kecepatan minor menjadi lima persen di atas batas kecepatan, dan nilai minimum untuk notifikasi kecepatan utama menjadi 10 persen di atas batas kecepatan. Ini menentukan bahwa peta menampilkan pemberitahuan setelah nilai minimum pemberitahuan terlampaui selama lima detik.


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

Sesuaikan cara speedometer menampilkan notifikasi kecepatan

Agar notifikasi kecepatan lebih menarik perhatian, Anda dapat menyesuaikan warna tampilan speedometer untuk setiap tingkat notifikasi.

Tabel berikut menunjukkan warna default untuk pemberitahuan kecepatan di class NavigationView:

ElemenWarna
MinorSpeedAlertBackgroundColorDayMode 0xffffff(putih)
MinorSpeedAlertBackgroundColorNightMode 0x000000
MinorSpeedAlertTextColorDayMode 0xd93025
MinorSpeedAlertTextColorNightMode 0xd93025
MajorSpeedAlertBackgroundColorDayMode 0xd93025
MajorSpeedAlertBackgroundColorNightMode 0xd93025
MajorSpeedAlertTextColorDayMode 0xffffff(putih)
MajorSpeedAlertTextColorNightMode 0xffffff(putih)

Anda dapat menentukan teks dan warna latar belakang speedometer untuk notifikasi kecepatan minor dan utama:

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

Menerima informasi kecepatan dari pengguna

Jika aplikasi Anda memerlukan pembagian informasi tentang kecepatan pengguna, Anda juga dapat menggunakan Navigation SDK untuk menyediakan informasi kecepatan pengguna. Misalnya, hal ini dapat berguna untuk aplikasi transportasi online tempat operator mungkin ingin memantau pengguna yang ngebut untuk meningkatkan keamanan. Hal ini juga dapat dilakukan tanpa perlu merender tampilan navigasi kepada pengguna di aplikasi Anda.

Misalnya, contoh berikut membagikan informasi kecepatan saat kecepatan adalah persentase yang ditentukan di atas batas kecepatan:

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