Navigasyon etkinleştirildiğinde Android için Navigasyon SDK'sı, haritanın sol alt köşesinde geçerli hız sınırını gösteren bir hız sınırı denetimi görüntüler. Kullanıcı hız sınırını aşarsa kontrol genişleyerek hız sınırı göstergesinin yanında bir hız göstergesi görüntüler ve hız belirli bir eşiğe ulaştığında uyarıları tetikler.
Navigation SDK, kullanıcı hız sınırını 8 km/saat (veya 10 km/saat) aştığında varsayılan olarak küçük bir hız uyarısı tetikler ve hız göstergesi metninin rengini kırmızıya çevirir. Kullanıcı hız sınırını 16 km/sa (veya 20 km/sa) aştığında büyük bir hız uyarısı tetiklenir ve hız göstergesinin arka plan rengi kırmızıya döner.
Hem uyarıları tetikleme eşiğini hem de hız göstergesinin gösterdiği metin ve arka plan renklerini özelleştirebilirsiniz. Ayrıca, kullanıcının hız bilgilerini belirlediğiniz eşiklere uygun şekilde kullanılabilir hale getirmek için Navigation SDK'yı da kullanabilirsiniz. Örneğin, kullanıcılarını hız sınırına uymaya teşvik etmelerine ve güvenliği artırmalarına yardımcı olmak için araç paylaşımı operatörlerine hız bilgilerini sunabilirsiniz.
Hız uyarıları için eşikleri özelleştirme
Hem küçük hem de büyük hız uyarıları için hız uyarısı eşiğini, mevcut hızın hız sınırına göre yüzdelik bir değer olarak özelleştirebilirsiniz. Ayrıca, haritada uyarı gösterilmeden önce eşiğin ne kadar süreyle aşılacağını da belirtebilirsiniz.
Aşağıdaki kod örneğinde, küçük hız uyarısı eşiği hız sınırının %5 üzerinde, büyük hız uyarısı eşiği ise hız sınırının %10 üzerinde olarak ayarlanmıştır. Haritanın, uyarı eşiği 5 saniye boyunca aşıldıktan sonra uyarı göstereceği belirtiliyor.
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());
Hız saatinde hız uyarılarının nasıl gösterileceğini özelleştirme
Hız uyarılarının daha dikkat çekici olması için her uyarı seviyesinde hız göstergesi ekranının renklerini özelleştirebilirsiniz.
Aşağıdaki tabloda, NavigationView sınıfındaki hız uyarılarının varsayılan renkleri gösterilmektedir:
| Öğe | Renk |
|---|---|
| MinorSpeedAlertBackgroundColorDayMode | 0xffffff(beyaz) |
| MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
| MinorSpeedAlertTextColorDayMode | 0xd93025 |
| MinorSpeedAlertTextColorNightMode | 0xd93025 |
| MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |
| MajorSpeedAlertBackgroundColorNightMode | 0xd93025 |
| MajorSpeedAlertTextColorDayMode | 0xffffff(beyaz) |
| MajorSpeedAlertTextColorNightMode | 0xffffff(beyaz) |
Hem küçük hem de büyük hız uyarıları için hız göstergesinin metin ve arka plan rengini belirleyebilirsiniz:
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 NavigationFragment.
navigationFragment.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
navigationFragment.setSpeedometerEnabled(true);
Kullanıcılardan hız bilgisi alma
Uygulamanızda kullanıcı hızına ilişkin bilgilerin paylaşılması gerekiyorsa kullanıcı hız bilgilerini kullanılabilir hale getirmek için Navigation SDK'yı da kullanabilirsiniz. Örneğin, bu özellik, operatörün güvenliği artırmak için kullanıcıların aşırı hız yapmasını izlemek isteyebileceği araç paylaşımı uygulamalarında faydalı olabilir. Bunu, uygulamanızda kullanıcıya bir gezinme görünümü oluşturmanız gerekmeden de yapabilirsiniz.
Aşağıdaki kod örneği, hız sınırı belirtilen bir yüzdeyle aşıldığında hız bilgilerini paylaşıyor:
// 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);