Dikkat dağıtma optimizasyonu (DO) sırasında sürücünün Ayarlar uygulamasıyla etkileşimini azaltacak bir araç olarak hareket ediyor olabilir. Sürüş sırasında bazı ayarların değiştirilmesi gerekebilir. Bu nedenle uygulama, tamamen engellendi. Ancak varsayılan olarak çoğu tercih yalnızca anahtar ve Kolayca güncellenen tercihlerin etkinleştirilmesini sağlayabilirsiniz.
Şekil 1. Sürüş sırasında etkinleştirilen uygulamalar
Dikkat dağıtıcı unsurlar optimize edilmemişse tüm etkinlikler de engellenebilir. aşağıda gösterildiği gibidir. Bu yöntem şu anda öncelikli olarak ayarlar araması için kullanılmaktadır.
Şekil 2. Tüm etkinlikler engellendi
Temel özelleştirmeler, yapılandırma aracılığıyla yapılabilir. kullanır. Daha ayrıntılı özelleştirmeye ihtiyacınız olursa ek değişiklikler kod yoluyla yapılması gerekir.
Üst düzey özelleştirme
Sürüş sırasında bir tercih devre dışı bırakıldığında bu tercihe dokunduğunuzda bir kadeh kaldırın
Bu tercihin, sürüş sırasında kullanılamayacağını belirten bir mesaj
bir tercih denetleyici eklenmiş olmalıdır. İleti,
Yer paylaşımıyla özelleştirilebilen restricted_while_driving
dizesi
(dizenin 60 karakter sınırını aşması şartıyla).
Şekil 3. Özelleştirilmiş yer paylaşımı
DO çerçevesinin tamamı config_always_ignore_ux_restrictions
kullanılarak devre dışı bırakılabilir.
Bunu true (doğru) değerine ayarlamak, sürücünün aracın her yönüyle
Ayarlar uygulaması.
<bool name="config_always_ignore_ux_restrictions">true</bool>
Yukarıdaki yapılandırma yanlış değerine ayarlanırsa Ayarlar uygulaması
config_ignore_ux_restrictions
değerine döner
sürüş sırasında hangi tercihlerin etkinleştirilmesi gerektiğini belirlemek için. Burada sağlanan dizeler
preference_keys.xml.
içinde tanımlanan dizelere işaret etmelidir
Örnek
Bu örnek, sürüş sırasında derin iç içe yerleştirilmiş ayarın nasıl etkinleştirileceğini göstermek için
Metin-Konuşma (TTS) çıkış ayarlarının nasıl etkinleştirileceğini gösterir. Bunun işe yarayabilmesi için
hiyerarşideki tüm ayarları config_ignore_ux_restrictions
öğesine ekleyin.
Buna sistem, diller ve giriş ile yapılandırmadaki TTS tercihleri de dahildir çünkü hiyerarşimiz
Sistem->Diller ve Giriş->Metin okuma çıkışı. Ancak tercihler
hâlâ devre dışı bırakılmış durumdadır. Bu seçenekleri mümkün kılmak için
erişilebilir olmasını istediğimiz tercihler için anahtarlar eklememiz gerekir. Burada
oynatma tercihlerini etkinleştirmek istiyor ancak
Bu nedenle, yapılandırmamıza pk_tts_playback_group
değerini ekliyoruz.
<string-array name="config_ignore_ux_restrictions"> [...] <item>@string/pk_system_settings_entry</item> <item>@string/pk_languages_and_input_settings</item> <item>@string/pk_tts_settings_entry</item> <item>@string/pk_tts_playback_group</item> </string-array>
Ayrıntılı özelleştirme
Bazı tercihler, e-postalarınızın görünmesini istediğiniz sürüş durumuna göre bir tercihi etkinleştirmek/devre dışı bırakmak. Örneğin, Bluetooth ve kablosuz ayarları, kaydedilen Bluetooth cihazları gösterecek şekilde değiştirilmiş veya Sürüş sırasında kablosuz erişim noktaları.
Şu anda bu tür dosyaları oluşturmaya yönelik yapılandırma tabanlı bir çözüm yoktur.
ayarlamalar yapabilirsiniz. Bunun yerine, 100 dakikadan daha geniş bir
PreferenceController ve onApplyUxRestrictions()
geçersiz kılmaları
anlamına gelir.
Özel bir tercih denetleyicisi oluşturulduğunda, ilgili XML dosyasını kendi uygulamanızla değiştirin.
Örnekler
CarSettings'de bazı tercihler daha özelleştirilmiş bir davranışa sahiptir. örnek olarak kullanılmıştı. Örneğin, Kablosuz erişim noktası listesinde, yalnızca sürüş sırasında kayıtlı erişim noktalarını göstermek (ve gerisini gizlemek) tercih edilmelidir. Bunun için aşağıdakileri yapın:
} else if (shouldApplyUxRestrictions(getUxRestrictions())) { wifiEntries = getCarWifiManager().getSavedWifiEntries(); } else { wifiEntries = getCarWifiManager().getAllWifiEntries(); }
Burada görünen erişim noktaları zaten kısıtlı olduğundan
, bu tercihlere ek UxRestrictions
uygulamak istemiyor.
Bu nedenle, onApplyUxRestrictions
geçersiz kılınıp bilinçli bir şekilde işlem yapın
işlemsiz:
@Override protected void onApplyUxRestrictions(CarUxRestrictions uxRestrictions) { // Since the list dynamically changes based on the UX restrictions, we // enable this fragment regardless of the restriction. Intentional no-op. }
Bluetooth'a bağlı cihazlarda başka bir örnek sağlanmıştır.
Bluetooth cihazlarına bağlanmayı ve bu cihazların bağlantısını kesmeyi etkinleştirmeye devam etmek, ancak
bu cihazlar için ek ayarlara erişmeyi devre dışı bırakın. Bunu başarmak için
tekrar onApplyUxRestrictions
geçersiz kılınır ancak bu kez NO_SETUP
kısıtlama etkin, tercihte ikincil işlemi gizleyin.
@Override protected void onApplyUxRestrictions(CarUxRestrictions uxRestrictions) { super.onApplyUxRestrictions(uxRestrictions); if (CarUxRestrictionsHelper.isNoSetup(uxRestrictions)) { updateActionVisibility(getPreference(), /* isActionVisible= */ false); } }