Navigasyon etkinleştirildiğinde Android için Navigasyon SDK'sı, haritanın sol alt köşesinde mevcut hız sınırını gösteren bir hız sınırı denetimi gösterir. Kullanıcı hız sınırını aşarsa kontrol bölümü genişletilerek hız sınırı ekranının yanında bir hız saati görüntülenir ve hız belirli bir eşiğe ulaştığında uyarılar tetiklenir.
Varsayılan olarak, Gezinme SDK'sı kullanıcı hız sınırını 8 mil/sa (10 km/sa) aştığında küçük bir hız uyarısını tetikler ve hız göstergesi metninin rengini kırmızıya değiştirir. Kullanıcı hız sınırını 10 mil/sa (veya 20 km/sa) aştığında önemli bir hız uyarısı tetikler ve hız göstergesinin arka plan rengini kırmızıya çevirir.
Hem uyarıları tetikleme eşiğini hem de hız saatinin gösterdiği metin ve arka plan renklerini özelleştirebilirsiniz. Kullanıcının hız bilgilerini belirlediğiniz eşiklere uygun şekilde sunmak 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 hız bilgilerini araç paylaşma operatörlerinin kullanımına 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ının yüzdesi olarak özelleştirebilirsiniz. Ayrıca, haritanın uyarıyı göstermeden önce eşiğin ne kadar süre boyunca aşıldığını da belirtebilirsiniz.
Aşağıdaki kod örneğinde, küçük hız uyarısı için eşik hız sınırının yüzde beş, büyük hız uyarısı için eşik ise hız sınırının yüzde on üzerinde ayarlanmıştır. Uyarı eşiğinin beş saniye boyunca aşılması durumunda haritanın uyarı gösterdiğini belirtir.
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 göstergesinin hız uyarılarını nasıl göstereceğini özelleştirme
Hız uyarılarını daha dikkat çekici hale getirmek amacıyla, her uyarı düzeyine göre hız saati 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 | 0xFF(beyaz) |
MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
MinorSpeedAlertTextColorDayMode | 0xd93025 |
MinorSpeedAlertTextColorNightMode | 0xd93025 |
MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |
MajorSpeedAlertBackgroundColorNightMode | 0xd93025 |
MajorSpeedAlertTextColorDayMode | 0xFF(beyaz) |
MajorSpeedAlertTextColorNightMode | 0xFF(beyaz) |
Hem küçük hem de büyük hız uyarıları için hız göstergesinin metnini ve arka plan rengini belirtebilirsiniz:
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);
Kullanıcılardan hız bilgileri alma
Uygulamanız kullanıcı hızı hakkında bilgi paylaşımı gerektiriyorsa kullanıcının hız bilgilerini paylaşmak için Navigasyon SDK'sını da kullanabilirsiniz. Örneğin bu, operatörün güvenliği artırmak amacıyla kullanıcıların aşırı hız yaptığı hızları izlemek isteyebileceği araç paylaşımı uygulamaları için yararlı olabilir. Bu işlem, uygulamanızda kullanıcıya bir gezinme görünümü oluşturmanıza gerek kalmadan da yapılabilir.
Örneğin, aşağıdaki örnekte hız, hız sınırının belirli bir yüzdesinin üzerinde olduğunda hız bilgileri paylaşılmaktadır:
// 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);