Gerçek zamanlı kesintileri yapılandırma
Gerçek zamanlı aksaklıklar, kullanıcıları rotalarındaki aksaklıklar hakkında uyaran ve karşılaştıkları aksaklıkları bildirmelerine ve doğrulamalarına olanak tanıyan bir dizi özelliktir. Araç kazaları, trafik sıkışıklığı, polis ve hız kamerası varlığı, inşaat, şerit kapatma ve belirli hava koşulları, aksamalara örnek olarak verilebilir. Bu sayfada, anlık aksaklık özellikleri ve bunların yapılandırma seçenekleri (özel navigasyon kullanıcı arayüzleri kullanan uygulamalarla ilgili dikkat edilmesi gereken noktalar dahil) açıklanmaktadır.
Gerçek zamanlı aksaklık özellikleri
Navigasyon SDK'sı, temel navigasyon deneyiminin bir parçası olarak aşağıdaki anlık aksama özelliklerini içerir:- Rotalar boyunca etkileşimli aksama açıklama metinleri.
- Etkin navigasyon sırasında oylama ile otomatik aksama uyarıları
- Etkin navigasyon sırasında aksaklık bildirme.
Bu özellikler yapılandırılabilir ve varsayılan olarak etkindir. Aşağıdaki bölümlerde, özellikler ve kullanılabilir yapılandırma seçenekleri hakkında daha fazla bilgi verilmektedir.
Rotalar boyunca etkileşimli aksama açıklama metinleri
Bir uygulama, rotaya genel bakışta veya etkin navigasyon sırasında rota gösterdiğinde mevcut aksaklıklar rota boyunca açıklama metni olarak görünür. Trafik katmanını etkinleştirdiğinizde rota dışı aksaklıklar da haritada gösterilir. Açıklama metinlerinde, aksaklığın türünü gösteren bir simge bulunur.
setTrafficPromptsEnabled kullanarak rotalar boyunca aksama açıklama metinlerinin gösterilmesini kontrol edebilirsiniz. Bu, kullanıcı bir aksamaya yaklaştığında otomatik uyarıların gösterilmesini da kontrol eder.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
Kullanıcı bir açıklama metnine dokunduğunda kesinti ayrıntılarını gösterme
Kesinti açıklama metnine dokunduğunuzda daha fazla ayrıntı içeren bir bilgi kartı açılır. Bu durum hem rota üzerindeki hem de rota dışındaki açıklama metinleri için geçerlidir. Ancak rota dışındaki açıklama metinleri yalnızca trafik katmanı etkinleştirildiğinde görünür. Kartta aksaklığın türü, en son bildirildiği zaman ve bazen aksaklığın devam edip etmediğiyle ilgili oy verme seçeneği gösterilir. Bilgi kartı türü ve yapılandırma seçenekleri, kullanıcının aktif navigasyonda olup olmadığına bağlı olarak değişir.
Etkin navigasyonu başlatmadan önce rotaya genel bakışlarda açıklama bilgi kartları
Kullanıcılar, aktif navigasyonu başlatmadan önce haritada veya rotaya genel bakışta rota üzerindeki ya da rota dışındaki bir açıklama metnine dokunarak bilgi kartı açabilir. Rota dışı açıklama metinleri için trafik katmanının etkinleştirilmesi gerekir. Bilgi kartında kesintiyle ilgili daha fazla bilgi verilir.
Kullanıcıların rotaya genel bakışlarda aksama açıklama metinlerine dokunarak daha fazla bilgi görüntüleme özelliğini setTrafficIncidentCardsEnabled kullanarak kontrol edebilirsiniz.
// Using the SupportNavigationFragment mNavFragment.setTrafficIncidentCardsEnabled(true); // Using the NavigationView navigationView.setTrafficIncidentCardsEnabled(true);
Etkin navigasyon sırasında açıklama bilgi kartları
Aktif navigasyon sırasında kullanıcılar, rota üzerindeki veya rota dışındaki bir aksaklık açıklama metnine dokunarak bilgi kartı açabilir. Kartta aksaklık türü ve en son bildirilen zaman gösterilir. Ayrıca kullanıcıların aksaklığın devam edip etmediği konusunda oy kullanabileceği düğmeler bulunur.
Kullanıcılar, kapalı yollar hariç olmak üzere rota üzerindeki ve rota dışındaki 5 km mesafede bulunan aksaklıklar için oy kullanabilir. Google, kesintiyi göstermeye devam edip etmeyeceğini belirlemek için bu oyları işler. Oylar, diğer Google Haritalar ve Navigasyon SDK'sı kullanıcıları için haritada da gösterilebilir.
setTrafficPromptsEnabled kullanarak aktif navigasyon sırasında aksama açıklama metinlerinin görüntülenmesini ve dokunulabilirliğini kontrol edebilirsiniz. Bu yöntem, rotalar boyunca açıklama metinlerinin görüntülenmesini ve kullanıcı bir aksamaya yaklaştığında otomatik uyarıların görüntülenmesini de kontrol eder.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
Etkin navigasyon sırasında oylama ile otomatik aksaklık uyarıları
Etkin navigasyon sırasında, kullanıcı rota üzerindeki bir aksamaya yaklaştığında aksamayla ilgili bilgilerin ve aksamanın hâlâ devam edip etmediği konusunda oy kullanma düğmelerinin yer aldığı bir istem gösterilir. Kullanıcılar tarafından gönderilen oylar Google tarafından işlenir ve diğer Google Haritalar ve Navigasyon SDK'sı kullanıcıları için haritada gösterilebilir. Ayrıca, aksaklığın gösterilmeye devam edip etmeyeceğini belirlemek için de kullanılabilir.
Etkin navigasyon sırasında uyarı istemlerinin gösterilmesini setTrafficPromptsEnabled kullanarak yapılandırabilirsiniz. Bu, rotalar boyunca açıklama metinlerinin gösterilmesini de kontrol eder.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
Etkin navigasyon sırasında aksaklık bildirme
Etkin gezinme modunda, gezinme kullanıcı arayüzünde kullanıcıların rotaları boyunca yeni aksaklıkları bildirmelerine olanak tanıyan bir düğme görünür. Kullanıcı düğmeye dokunduğunda, bildirilebilecek aksama türlerini içeren bir menü gösterilir. Kullanıcıların gönderdiği raporlar Google tarafından işlenir ve diğer Google Haritalar ve Navigasyon SDK'sı kullanıcıları için haritada gösterilebilir.
Kapalı yol bildirimi, engellenen segmenti atlamak için alternatif bir rota sunabilir ve kullanıcıdan yeni rotayı onaylamasını veya reddetmesini isteyebilir. Bu özellik, kullanılabilirlik durumuna tabidir.
Standart raporlama düğmesini gösterme veya gizleme
Etkin navigasyon sırasında standart raporlama düğmesinin görünürlüğünü
setReportIncidentButtonEnabled
kullanarak yapılandırabilirsiniz.
// Enables the incident reporting button to show in situations where incident // reporting is possible. // Using the SupportNavigationFragment mNavFragment.setReportIncidentButtonEnabled(true); // Using the NavigationView navigationView.setReportIncidentButtonEnabled(true);
Özel raporlama düğmesi ekleme
Standart aksaklık bildirme düğmesi yerine, navigasyon kullanıcı arayüzüne özel bir bildirme düğmesi ekleyebilirsiniz. Kullanıcı özel düğmeyi tıkladığında showReportIncidentsPanel yöntemini çağırarak raporlama menüsünün gösterilmesini tetikleyebilirsiniz. Özel bildirim düğmesi eklemeden önce, isIncidentReportingAvailable yöntemini çağırarak uygulamanın etkin navigasyonda olduğunu ve kullanıcının bildirim özelliğinin etkin olduğu bir ülkede bulunduğunu doğrulayın. Bu koşullardan herhangi biri karşılanmıyorsa raporlama menüsü görünmez.
Button customReportIncidentButton = findViewById(R.id.custom_reporting_button); // Check if reporting is available before displaying your button customReportIncidentButton.setVisibility( navigationView.isReportingAvailable ? View.VISIBLE : View.GONE); // Trigger the reporting flow if the button is clicked customReportIncidentButton.setOnClickListener(v -> navigationView.showReportIncidentsPanel());
Özel navigasyon kullanıcı arayüzleriyle çalışma
Navigasyon SDK'sı uygulamanız özel kullanıcı arayüzü öğeleri içeriyorsa çakışmaları önlemek için gerçek zamanlı kesinti öğelerini göz önünde bulundurmanız gerekir.
Bildirme düğmesinin konumu
Varsayılan olarak, aksaklık bildirme düğmesi haritanın alt ucunda/arka köşesinde yer alır. Soldan sağa diller için sağ tarafta, sağdan sola diller için sol taraftadır. Özel kullanıcı arayüzü öğelerine yer açmak için bildirme düğmesini taşımanız gerekiyorsaBOTTOM_END_BELOW veya FOOTER özel kontrolü ekleyin. Bu, düğmenin ekrandaki konumunu yukarı taşır. Kendi özel kullanıcı arayüzlerinizi özel kontrollere yerleştirmek, Navigasyon SDK'sı tarafından gösterilen tüm istemlerin, gösterilirken özel kullanıcı arayüzü öğelerinizin üzerine düzgün bir şekilde katmanlanmasını da sağlar. Özel denetimleri kullanamıyorsanız olası kullanıcı arayüzü çakışmalarını yönetmek için Prompt Visibility API'yi kullanın.
Prompt Visibility API (Deneysel)
Prompt Visibility API, Navigation SDK tarafından oluşturulan kullanıcı arayüzü öğeleri ile kendi özel kullanıcı arayüzü öğeleriniz arasındaki çakışmaları önlemenize yardımcı olur. Bunun için, Navigation SDK kullanıcı arayüzü öğesi görünmeden hemen önce ve öğe kaldırılır kaldırılmaz geri çağırma almak üzere bir dinleyici ekler. Bilgi kartları, istemler ve aksama raporlama menüsü gibi gerçek zamanlı aksama öğelerinin yanı sıra Navigasyon SDK'sı tarafından oluşturulan diğer bildirimler için geri çağırmalar alabilirsiniz.// Sample listener val listener: PromptVisibilityChangedListener = { isVisible -> if (isVisible) { customFab.visibility = false customFooter.visibility = false moveSomeOtherThingsAround() } else { customFab.visibility = true customFooter.visibility = true moveSomeThingsBackToWhereTheyWereBefore() } } // Inside onCreate() navigationView.addPromptVisibilityChangedListener(listener) // Inside onDestroy() navigationView.removePromptVisibilityChangedListener(listener)