Gerçek zamanlı kesintileri yapılandırma
Anlık kesintiler, kullanıcıları rotaları üzerindeki kesintiler konusunda uyaran ve karşılaştıkları kesintileri bildirmelerine ve doğrulamalarına olanak tanıyan bir özellikler topluluğudur. Araç kazaları, trafik sıkışıklığı, polis ve hız kamerası varlığı, inşaat, şerit kapatma ve belirli hava koşulları, aksaklıklara örnek olarak verilebilir. Bu sayfada, özel gezinme kullanıcı arayüzlerini kullanan uygulamalarla ilgili hususlar da dahil olmak üzere anlık kesinti özellikleri ve bunların yapılandırma seçenekleri açıklanmaktadır.
Gerçek zamanlı aksaklık özellikleri
Navigation SDK, temel navigasyon deneyiminin bir parçası olarak aşağıdaki gerçek zamanlı aksaklık özelliklerini içerir:- Rotalar boyunca etkileşimli aksaklık açıklamaları.
- Aktif gezinme sırasında oylama ile otomatik kesinti uyarıları.
- Etkin navigasyon sırasında kesinti 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 aksaklık açıklama metinleri
Bir uygulama, rota genel görünümünde veya etkin gezinme sırasında bir rota gösterdiğinde mevcut aksaklıklar, rota boyunca açıklama metinleri olarak görünür. Açıklama metinlerinde, kesintinin türünü gösteren bir simge bulunur.

setTrafficPromptsEnabled
simgesini kullanarak rotalardaki aksaklık açıklama metinlerinin gösterilmesini kontrol edebilirsiniz. Bu simge, kullanıcı bir aksaklığa yaklaştığında otomatik uyarıların gösterilmesini de 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
Kullanıcılar, kesinti türü, son bildirilme zamanı ve bazı durumlarda kesintinin hâlâ devam edip etmediğiyle ilgili oylama seçeneği de dahil olmak üzere kesinti hakkında daha fazla bilgi içeren bir bilgi kartı görüntülemek için bir açıklama metnine dokunabilir. Kullanıcının aktif gezinmede olup olmamasına bağlı olarak iki farklı bilgi kartı türü gösterilebilir ve her tür için yapılandırma seçenekleri farklıdır.
Aktif navigasyonu başlatmadan önce rota genel bakışlarında açıklama metni bilgi kartları
Kullanıcı, aktif navigasyonu başlatmadan önce bir rota genel görünümünde açıklama metnine dokunduğunda kesinti hakkında daha fazla bilgi içeren bir bilgi kartı gösterilir.

setTrafficIncidentCardsEnabled
simgesini kullanarak kullanıcıların, rota özetlerindeki aksaklık açıklama metinlerine dokunarak daha fazla bilgi görüntüleme özelliğini kontrol edebilirsiniz.
// Using the SupportNavigationFragment mNavFragment.setTrafficIncidentCardsEnabled(true); // Using the NavigationView navigationView.setTrafficIncidentCardsEnabled(true);
Etkin navigasyon sırasında açıklama metni bilgi kartları
Etkin gezinme sırasında bir rota üzerinde aksaklık açıklama metni göründüğünde kullanıcılar, aksaklık türü ve son bildirilme zamanı da dahil olmak üzere aksaklıkla ilgili daha fazla bilgi içeren bir bilgi kartını görüntülemek için açıklama metnine dokunabilir. Ayrıca, aksaklığın devam edip etmediğiyle ilgili oylama düğmelerini de görebilirler. Kullanıcılar tarafından gönderilen oylar Google tarafından işlenir ve diğer Google Haritalar kullanıcıları ile Navigation SDK kullanıcıları için haritada gösterilebilir. Ayrıca, kesintinin gösterilmeye devam edilip edilmeyeceğini belirlemek için de kullanılabilir.

setTrafficPromptsEnabled
simgesini kullanarak aktif navigasyon sırasında aksaklık açıklama metinlerinin gösterilmesini ve bunlara dokunulabilmesini kontrol edebilirsiniz. Bu simge, rotalar üzerindeki açıklama metinlerinin gösterilmesini ve kullanıcı bir aksaklığa yaklaştığında otomatik uyarıların gösterilmesini de kontrol eder.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
Etkin navigasyon sırasında oylama özelliğiyle otomatik kesinti uyarıları
Etkin gezinme sırasında, bir kullanıcı rotasında bir aksaklığa yaklaştığında aksaklıkla ilgili bilgilerin yer aldığı bir istem ve aksaklığın hâlâ devam edip etmediğine dair oylama düğmeleri gösterilir. Kullanıcılar tarafından gönderilen oylar Google tarafından işlenir ve diğer Google Haritalar ve Navigation SDK kullanıcıları için haritada gösterilebilir. Ayrıca, kesintinin gösterilmeye devam edilip edilmeyeceğini belirlemek için de kullanılabilir.

Etkin gezinme sırasında uyarı istemlerinin gösterilmesini setTrafficPromptsEnabled
simgesini kullanarak yapılandırabilirsiniz. Bu simge, rotalar üzerindeki 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 kesinti bildirme
Etkin gezinme modunda, gezinme kullanıcı arayüzünde, kullanıcıların rotaları üzerindeki yeni aksaklıkları bildirmesine olanak tanıyan bir düğme görünür. Kullanıcı düğmeye dokunduğunda, bildirilebilecek aksaklık türlerinin yer aldığı bir menü gösterilir. Kullanıcıların gönderdiği raporlar Google tarafından işlenir ve diğer Google Haritalar ile Navigation SDK kullanıcıları için haritada gösterilebilir.


Standart raporlama düğmesini gösterme veya gizleme
setReportIncidentButtonEnabled
kullanarak etkin gezinme sırasında standart raporlama düğmesinin görünürlüğünü yapılandırabilirsiniz.
setReportIncidentButtonEnabled
.
// 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 bir bildirim düğmesi ekleme
Standart kesinti raporlama düğmesi yerine, gezinme kullanıcı arayüzüne özel bir raporlama 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 raporlama düğmesi eklemeden önce, isIncidentReportingAvailable
işlevini çağırarak uygulamanın etkin gezinmede olduğunu ve kullanıcının raporlamanın etkinleştirildiği bir ülkede bulunduğunu doğrulayın. Bu koşullardan 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 gezinme kullanıcı arayüzleriyle çalışma
Navigation SDK'yı uygulamanızda özel kullanıcı arayüzü öğeleri varsa çakışmaları önlemek için anlık kesinti öğelerini göz önünde bulundurmanız gerekir.
Raporlama düğmesinin konumu
Aksaklık bildirme düğmesi varsayılan olarak haritanın alt ucunda/son köşesinde bulunur. Soldan sağa dillerde sağ tarafta, sağdan sola dillerde ise sol taraftadır. Özel kullanıcı arayüzü öğelerine yer açmak için raporlama düğmesini taşımanız gerekiyorsaBOTTOM_END_BELOW
veya FOOTER
özel kontrolü ekleyin. Bu kontrol, düğmenin ekrandaki konumunu yukarı iter. Kendi özel kullanıcı arayüzlerinizi özel denetimlerin içine yerleştirmek, Navigation SDK tarafından gösterilen tüm istemlerin gösterilirken özel kullanıcı arayüzü öğelerinizin üzerine düzgün şekilde yerleştirilmesini de sağlar. Özel kontrolleri 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, bir Navigation SDK kullanıcı arayüzü öğesi görünmeden önce ve öğe kaldırılır kaldırılmaz geri çağırma almak için bir dinleyici ekleyerek 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. Bilgi kartları, istemler ve kesinti raporlama menüsü gibi anlık kesinti öğeleriyle ilgili geri aramaların yanı sıra Navigation SDK tarafından oluşturulan diğer bildirimler için de geri arama 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)