Hız saati uyarılarını yapılandırma

Navigasyon etkinleştirildiğinde, Android için Gezinme SDK'si haritanın sol alt köşesinde, geçerli hız sınırını gösteren bir hız sınırı kontrolü görüntüler. Bir sürücü hız sınırını aşarsa kontrol genişleyerek hız sınırı ekranının 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.

Varsayılan olarak, Navigasyon SDK'sı sürücü hız sınırını 5 mil/sa. (veya 10 km/sa) aştığında küçük bir hız uyarısı tetikler ve hız saati metninin rengini kırmızıya dönüştürür. Sürücü hız sınırını 10 mil/sa. (veya 20 km/sa) aştığında büyük bir hız uyarısı alır ve hız saati arka plan rengini kırmızıya dönüştürür.

Hem uyarıları tetikleme eşiğini hem de hız saatinin görüntülediği metin ve arka plan renklerini özelleştirebilirsiniz. Sürücünün hız bilgilerini belirlediğiniz eşiklere göre kullanılabilir hale getirmek için Navigasyon SDK'sını da kullanabilirsiniz. Örneğin, araç paylaşma operatörlerinin sürücülerini hız sınırına uymaya teşvik etmelerine ve güvenliği iyileştirmelerine yardımcı olmak için hız bilgilerini onlara sunabilirsiniz.

Hız uyarıları eşiklerini özelleştirin

Hem küçük hem de önemli hız uyarıları için hız uyarısı eşiğini, geçerli hızın hız sınırının üzerinde bir yüzde olarak özelleştirebilirsiniz. Harita uyarı görüntülemeden önce, eşiğin ne kadar süre aşılacağını da belirtebilirsiniz.

Aşağıdaki kod örneğinde, küçük bir hız uyarısının eşiği hız sınırının yüzde beş üzerine ve büyük bir hız uyarısının eşiği hız sınırının yüzde 10 üzerine ayarlanmaktadır. Bu işlev, bir uyarı eşiği beş saniye aşıldığında haritanın bir uyarı görüntüleyeceğ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 saatinin hız uyarılarını nasıl görüntüleyeceğini özelleştirin

Hız uyarılarının daha dikkat çekici olmasını sağlamak üzere her bir uyarı seviyesi için 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:

ÖğeRenk
MinorSpeedAlertBackgroundColorDayMode 0xffffff(beyaz)
MinorSpeedAlertBackgroundColorNightMode 0x000.000
MinorSpeedAlertTextColorDayMode 0xd93025
MinorSpeedAlertTextColorNightMode 0xd93025
MajorSpeedAlertBackgroundColorDayMode 0xd93025
MajorSpeedAlertBackgroundColorNightMode 0xd93025
MajorSpeedAlertTextColorDayMode 0xffffff(beyaz)
MajorSpeedAlertTextColorNightMode 0xffffff(beyaz)

Hem küçük hem de önemli hız uyarıları için hız saatinin 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);

Sürücülerden hız bilgisi alma

Uygulamanız, sürücü hızıyla ilgili bilgilerin paylaşılmasını gerektiriyorsa sürücünün hız bilgilerini sağlamak için Navigasyon SDK'sını da kullanabilirsiniz. Bu özellik, operatörün güvenliği artırmak için sürücülerin aşırı hızlarını izlemek isteyebileceği araç paylaşma uygulamaları için faydalı olabilir. Bu, uygulamanızda kullanıcıya bir gezinme görünümü oluşturmadan da yapılabilir.

Örneğin, aşağıdaki örnekte hız, hız sınırının belirli bir yüzdesi ü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);