Ses odağı

Mantıksal akış başlatmadan önce uygulama, mantıksal akışta kullanılan ses özellikleriyle aynı ses özelliklerini kullanarak ses odağı ister. Uygulama, otomotiv kullanım alanlarında beklendiği gibi çalışmak için odak kaybına saygı duymalıdır.

Odaklanma isteği göndermeniz önerilir ancak sistem bunu zorunlu kılmaz. Bu nedenle, odaklanmayı birincil ses kontrol mekanizması olarak değil, oynatma sırasında çakışmayı dolaylı olarak kontrol etme ve önleme aracı olarak değerlendirin. Araç, ses alt sisteminin çalışması için odak sistemine bağlı olmamalıdır.

Odak etkileşimleri

AAOS'u desteklemek için ses odağı istekleri, isteğin CarAudioContext ile mevcut odak sahiplerinin CarAudioContext arasındaki önceden tanımlanmış etkileşimlere göre işlenir. Üç tür etkileşim vardır:

  • Özel
  • Reddet
  • Eşzamanlı

Özel etkileşim

Bu, Android ile en sık kullanılan etkileşim modelidir.

Özel etkileşimlerde, aynı anda yalnızca bir uygulamanın odaklanmasına izin verilir. Bu nedenle, gelen odak isteğine odak verilirken mevcut odak sahibi odağı kaybeder. Her iki uygulama da medya oynattığı için yalnızca bir uygulamanın odaklanmasına izin verilir. Sonuç olarak, yeni başlatılan uygulamanın odaklanma isteği AUDIOFOCUS_REQUEST_GRANTED ile döndürülürken, şu anda çalan müzik uygulaması, yapılan isteğin türüne karşılık gelen bir kayıp durumuyla odaklanma değişikliği etkinliği alır.

Etkileşimi reddetme

Reddetme etkileşimlerinde gelen istek her zaman reddedilir. Örneğin, devam eden bir arama sırasında müzik çalmaya çalışırken. Bu durumda, Arama uygulaması bir arama için ses odağını tutuyorsa ve ikinci bir uygulama müzik çalmak için odak isteğinde bulunursa müzik uygulaması, isteğe yanıt olarak AUDIOFOCUS_REQUEST_FAILED alır. Odaklanma isteği reddedildiğinden, mevcut odaklanma sahibine odaklanma kaybı gönderilmez.

Eşzamanlı etkileşim

AAOS'a özgü olan eşzamanlı etkileşimlerdir. Bu, arabada ses odaklanması isteyen uygulamalara diğer uygulamalarla eşzamanlı olarak odaklanma olanağı tanır. Aynı anda etkileşimde bulunulabilmesi için aşağıdaki koşulların karşılanması gerekir. Şunlar:

Bu ölçütler karşılanırsa odak isteği AUDIOFOCUS_REQUEST_GRANTED ile döndürülürken mevcut odak sahibinin odağında değişiklik olmaz. Ancak, mevcut odak sahibi duck etkinliklerini almayı veya duck edildiğinde duraklatmayı tercih ederse mevcut odak sahibi, özel bir etkileşimde olduğu gibi odağı kaybeder.

Eşzamanlı akışları yönetme

Eşzamanlı etkileşimin birçok kullanım alanı olsa da çıkış cihazları arasında donanım düzeyinde karıştırma ve ses kısma işlemlerini yaparken dikkatli olun. Aynı anda oynatılmasına izin verilen CarAudioContext örneklerinin farklı çıkış cihazlarına yönlendirilmesini önemle tavsiye ederiz.

Eşzamanlı akışlar için ayrı çıkış cihazları kullanıldığında HAL, akışları karıştırmadan önce birinin sesini kısabilir veya fiziksel akışları araçtaki farklı hoparlörlere yönlendirebilir. Mantıksal akışlar Android'de karıştırılırsa kazançlar değiştirilmeden aynı fiziksel akışın bir parçası olarak sunulur.

Örneğin, gezinme ve medya aynı anda sunulduğunda, gezinme talimatlarının daha net duyulabilmesi için medya akışındaki kazanç geçici olarak azaltılabilir (veya kısılabilir). Alternatif olarak, gezinme akışı sürücü tarafındaki hoparlörlere yönlendirilebilirken medya, kabinin geri kalanında çalmaya devam edebilir.

Etkileşim matrisi

Bu tabloda, CarAudioService tarafından tanımlanan etkileşim matrisi gösterilmektedir. Her satır, mevcut odak sahibinin CarAudioContext değerini, her sütun ise gelen isteğin CarAudioContext değerini temsil eder.

Örneğin, bir müzik medya uygulaması, navigasyon uygulaması odak istediğinde odaklanmış durumdaysa matris, eşzamanlı etkileşimlerle ilgili diğer ölçütlerin karşılandığı varsayılarak iki etkileşimin eşzamanlı olarak oynatılabileceğini gösterir.

Eşzamanlı etkileşimler nedeniyle birden fazla odak tutucu olabilir. Bu durumda, hangi etkileşimin uygulanacağına karar verilmeden önce gelen odak isteği mevcut odak sahiplerinin her biriyle karşılaştırılır. Bu durumda, en koruyucu etkileşim kazanır. Önce reddedilir, sonra özel, en son da eşzamanlı olarak yayınlanır.

Ses odağı etkileşim matrisi

1. şekil. Ses odağı etkileşim matrisi.

Android 11'de, kullanıcıların gezinme ve telefon görüşmeleri arasındaki etkileşim davranışını değiştirmesine olanak tanıyan yeni bir kullanıcı ayarı kullanıma sunuldu. Ayarlanırsa android.car.KEY_AUDIO_FOCUS_NAVIGATION_REJECTED_DURING_CALL, gelen NAVIGATION odak istekleri ile mevcut CALL odak sahipleri arasındaki etkileşimi eşzamanlı olarak reddedilen olarak değiştirir. Kullanıcılar, navigasyon talimatlarının aramayı kesintiye uğratmasını istemiyorsa bu ayarı etkinleştirebilir. Bu ayar kullanıcı için kalıcıdır ve sonraki odak isteklerinin yeni ayara uyması için dinamik olarak ayarlanabilir.

Geciktirilebilir ses odağı

Android 11'de AAOS, ertelenebilir ses odağı isteği için destek ekledi. Bu sayede, geçici olmayan odak isteklerinin, mevcut odak sahipleriyle etkileşimleri normalde reddedilmelerine neden olacakken gecikmesine izin verilir. Odak değişikliği, gecikmeli isteğin odak kazanabileceği bir durumla sonuçlandığında istek verilir.

Gecikmeli ses odağı istekleriyle ilgili kurallar

  • Yalnızca geçici olmayan istekler. Geçici olmayan kaynaklar için yalnızca gecikmeli istekte bulunulabilir. Böylece, geçici bir sesin alakalı olmaktan çıktıktan çok sonra çalması önlenir.

  • Tek seferde yalnızca bir istek ertelenebilir. Halihazırda gecikmeli bir istek varken geciktirilebilir bir istek gönderilirse orijinal gecikmeli istek bir AUDIOFOCUS_LOSS değişiklik etkinliği alır ve yeni istek AUDIOFOCUS_REQUEST_DELAYED senkron yanıtını alır.

  • Ertelenebilir istekler OnAudioFocusChangeListener olmalıdır. Bir istek geciktirildikten sonra, istek sonunda verildiğinde (AUDIOFOCUS_GAIN) veya daha sonra reddedildiğinde (AUDIOFOCUS_LOSS) talep eden tarafı bilgilendirmek için dinleyici kullanılır.

Ertelenebilir odaklanma isteği

Geciktirilebilen bir istek oluşturmak için:

  1. AudioFocusRequest.Builder#setAcceptsDelayedFocusGain e-posta adresini kullanın.

    mMediaWithDelayedFocusListener = new MediaWithDelayedFocusListener();
    
    mDelayedFocusRequest = new AudioFocusRequest
         .Builder(AudioManager.AUDIOFOCUS_GAIN)
         .setAudioAttributes(mMusicAudioAttrib)
         .setOnAudioFocusChangeListener(mMediaWithDelayedFocusListener)
         .setForceDucking(false)
         .setWillPauseWhenDucked(false)
         .setAcceptsDelayedFocusGain(true)
         .build();
    
  2. İsteği yaparken AUDIOFOCUS_REQUEST_DELAYED yanıtını işleyin:

    int delayedFocusRequestResults = mAudioManager.requestAudioFocus(mDelayedFocusRequest);
    if (delayedFocusRequestResults == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
        // start audio playback
        return;
    }
    if (delayedFocusRequestResults == AudioManager.AUDIOFOCUS_REQUEST_DELAYED) {
         // audio playback delayed to audio focus listener
         return;
    }
    
  3. İstek geciktiğinde odak dinleyici, odaktaki değişiklikleri işler:

    private final class MediaWithDelayedFocusListener implements
    OnAudioFocusChangeListener {
           @Override
           public void onAudioFocusChange(int focusChange) {
               synchronized (mLock) {
                   switch (focusChange) {
                       case AudioManager.AUDIOFOCUS_GAIN:
                            // Start focus playback
                       case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
                            // Pause media transiently
                       case AudioManager.AUDIOFOCUS_LOSS:
                            // Stop media
    

Sistem tarafından zorunlu kılınan karartma

Android 15, AAOS'te sistem tarafından zorunlu kılınan ses geçişini kullanıma sunuyor. Android'de ses odağı sistem tarafından zorunlu kılınmaz. Bu nedenle, uygulama geliştiricilerin ses odağı yönergelerine uyması önerilse de bir uygulama ses odağını kaybettikten sonra bile yüksek sesle çalmaya devam ederse sistem bunu engelleyemez.

Güvenliğin kritik önem taşıdığı otomotiv ortamlarında, sürücünün dikkatini dağıtmayı en aza indirmek için ses odağına uyulması hayati önem taşır. Bu özellik sayesinde ses çerçevesi, artık daha kontrollü ve tahmin edilebilir bir ses deneyimi için ses odağını kaybeden uygulamaların sesini otomatik olarak azaltır.

Bu geliştirme, uygulamaların etkileşim matrisinde tanımlandığı şekilde ses odağı kaybı kararına uymasını sağlayarak ses çalma çakışmalarını önler.

Üst düzey tasarım

Aşağıdaki şekilde, odak kaybı özelliğinin araçlardaki üst düzey tasarımı ve desteği gösterilmektedir:

Sistem tarafından zorunlu kılınan ses azaltma özelliği için üst düzey tasarım

Şekil 2. Sistem tarafından zorunlu kılınan karartma özelliği için üst düzey tasarım.

  • Hedefli ses azaltma: Android 15'te ses azaltmanın sistem tarafından zorunlu kılınması, özellikle bir uygulamanın ses odağını kaybettiği ancak ses çalmaya devam ettiği durumlar için tasarlanmıştır.
  • Ses azaltma mekanizması: Bir uygulama, ses odağını yeni bir istekte bulunan uygulamaya kaybettiğinde:
    • Ses çerçevesi, kaybeden uygulamanın sesini otomatik olarak azaltır.
    • Ses yavaş yavaş kaybolduktan sonra ses akışı sistem tarafından kapatılır.
    • Uygulama daha sonra ses odağı kaybı bildirimi alır.
    • Hatalı davranışta bulunan uygulamalar, ses odağını tekrar kazanana kadar sessize alınır.
    • Varsayılan mantık, 2 saniye sonra solan uygulamaları tekrar görünür hale getirmektir. Ancak OEM'ler bunu herhangi bir zaman aşımı değerine göre yapılandırabilir.
    • Ses çerçevesi, hem sesin yavaşça kısılması hem de yavaşça açılması işlemleri için OEM yapılandırmalarını kullanır.
  • OEM yapılandırma dosyası: Android 15'te yeni bir yapılandırma dosyası bulunur: car_audio_fade_configuration.xml:

    • Bu dosya, OEM'lerin sistemin ses odaklanması zorlamasının kaybeden bir uygulamaya ne zaman uygulanacağına dair ölçütler tanımlamasına olanak tanır.
    • Ses çerçevesi, yalnızca kaybeden uygulama bu XML dosyasındaki OEM tarafından tanımlanan kurallarla eşleşiyorsa sesin yavaşça kısılmasını ve sessizleştirilmesini zorunlu kılar.
    • Bu, OEM'lerin özelliğin davranışını uygulama özelliklerine veya ses kullanım türlerine göre özelleştirmesi için bir mekanizma sağlar.
  • RRO ile özellik kontrolü: Bu özelliği etkinleştirmek veya devre dışı bırakmak için yeni bir çalışma zamanı kaynağı yer paylaşımı (RRO) özellik işareti audioUseFadeManagerConfiguration kullanıma sunuldu:

    • Bu özellik varsayılan olarak devre dışıdır.
    • Sistem tarafından zorunlu kılınan ses odağı kaybını etkinleştirmek için OEM'lerin bu işareti true olarak ayarlaması gerekir.
    • Araba ses çerçevesi, işaret etkinleştirildiğinde geçerli fade yapılandırma tanımları beklese de bu tür tanımların olmaması otomatik olarak ölümcül bir istisnaya neden olmaz.
    • Tüm karartma yapılandırmalarının uygulamalarında eşleşen karartma tanımları olmalıdır. Geçerli bir tanım sağlamadan, araba ses yapılandırmasının bir parçası olarak bir solma yapılandırmasını (adıyla) çağırmak önemli bir hatadır.
    • Bu işaret devre dışı bırakıldığında tüm geçiş yapılandırma tanımları ve yapılandırma referansları yoksayılır.

Fade Manager yapılandırması

Android 15'teki ses çerçevesi, OEM'lere sesin solma davranışı üzerinde ayrıntılı kontrol sağlamak için birleşik bir FadeManagerConfiguration sunar. Bu çerçeve Şekil 3'te gösterilmektedir:

Fade Manager yapılandırması

3.Şekil Fade Manager yapılandırması.

Bu yapılandırma şunları içerir:

  • Solma geçişi özellikleri: Hem solma hem de solarak görünme ayarları.
    • Belirli ses kullanımları veya özellikleriyle tanımlanabilir.
    • Özel süre ayarlarına izin verir.
    • Bu ayarlar VolumeShaper.Configuration oluşturmak için kullanılır.
  • Solma politikaları: Solmanın ne zaman gerçekleşeceğini belirleyen kurallar.
    • Solma özelliğini etkinleştirmek veya devre dışı bırakmak için genel bir açma/kapatma düğmesi.
    • Sesin solmasına uygun (odak kaybedildiğinde sesin solmasına uygun) ses kullanımlarının yapılandırılabilir listesi.
    • Hariç tutma listeleri (solmayan), kritik veya belirlenmiş ses kaynaklarının solmasını önler. Bu listeler şunlara dayalı olabilir:
      • İçerik türleri
      • Ses özellikleri
      • Uygulama UID'leri (yalnızca çalışma zamanında ayarlanabilir)

OEM yapılandırmaları

Bu bölümde, kullanılabilen OEM özelleştirmelerini ele alıyoruz.

Araç sesinin solma yapılandırması XML dosyası

Android 15, odak kaybı sırasında sesin yavaşça kısılması davranışının kapsamlı OEM özelleştirmesine olanak tanıyan yeni bir yapılandırma dosyası car_audio_fade_configuration.xml sunar.

  • Bu XML dosyası, her biri car_audio_configuration.xml içinde çapraz referans için benzersiz bir ad gerektiren birden fazla farklı geçiş yapılandırmasının tanımlanmasına olanak tanır.
  • Bu yapılandırmalar, farklı ses bölgelerinde ve bölge yapılandırmalarında esnek bir şekilde uygulanabilir.
  • Her geçiş yapılandırması yalnızca milisaniye cinsinden süre değerlerini kabul eder. Sistem daha sonra bu değerleri kullanarak dahili olarak ilgili VolumeShaper.Configuration oluşturur.

Pratik uygulama rehberliği için device/generic/car/emulator/audio/car_audio_fade_configuration.xml adresindeki emülatör için sağlanan örnek yapılandırmalara bakın.

Araç ses yapılandırması XML dosyası

Android 15, car_audio_configuration.xml dosyasının güncellenmiş bir sürümünü (4. sürüm) sunar. Bu sürümde yeni applyFadeConfigs ve fadeConfig etiketleri yer alır. applyFadeConfigs etiketi, birden fazla fadeConfig tanımı içerebilir. Bu sayede esnek bir geçiş yapılandırması sağlanır. Her tanım:

  • isDefault = true ile belirlenmiş bir varsayılan fadeConfig içermelidir.
  • Birkaç geçici fadeConfig tanımı içerebilir. Bu geçici yapılandırmalar, özellikle ses odağı kaybı etkileşimleri sırasında ve yalnızca ses odağı kazanan uygulama, geçici yapılandırmada tanımlanan ölçütleri karşıladığında uygulanır.

Pratik uygulama rehberliği için device/generic/car/emulator/audio/car_audio_configuration.xml adresindeki emülatör için sağlanan örnek yapılandırmalara bakın.

OEM ses odağı hizmeti uzantısı

Özel bir araç ses odaklanma hizmeti uygulayan OEM'ler, ses azaltma ayarlarını OemCarAudioFocusResult dosyasına dahil ederek yapılandırma esnekliğine sahiptir. Bu, setAudioAttributesToCarAudioFadeConfigurationMap() oluşturucu yöntemi kullanılarak yapılabilir:

/** @see OemCarAudioFocusResult#getAudioAttributesToCarAudioFadeConfigurationMap() **/
@NonNull
public Builder setAudioAttributesToCarAudioFadeConfigurationMap(@NonNull
        Map<AudioAttributes, CarAudioFadeConfiguration> attrsToCarAudioFadeConfig) {
}

Özellikle, OEM'ler önceden yapılandırılmış başlatma zamanı sesini azaltma ayarlarını kullanmayı veya özel ses odağı hizmetleri aracılığıyla yapılandırmaları dinamik olarak uygulamayı seçebilir. Bu sayede uyarlanabilir kontrol sunulur.

Adım sırası diyagramı

Bu sıra şeması, App2 uygulamasına ses odağı verildikten sonraki davranışı ve App1 uygulamasının ses odağını kaybetmesini gösterir:

  • Araba ses hizmeti, ses odağı kaybını App1'ya gönderdiğinde, FadeManagerConfiguration'lar tarafından tanımlanan şekilde App1 oynatıcısındaki oynatma işlemi yavaş yavaş durdurulur. Sesin yavaşça kapatılması işlemi tamamlandığında App1, standart ses odağı kaybı geri çağırmasını alır.
  • İsteğe bağlı olarak, App1 için ses, yapılandırılabilir bir süre sonra tekrar açılabilir. OEM'ler, bu süreyi Builder#setFadeInDurationForUsage(int, long) aracılığıyla kendi özel ürün gereksinimlerine göre ayarlayabilir.

Araba sesinde geçiş özelliğinin adım sırası diyagramı

Şekil 4. Araba sesinde fade özelliği için adım sırası diyagramı.

Çoklu bölge odak yönetimi

Birden fazla ses bölgesi olan araçlarda ses odağı her bölge için ayrı ayrı yönetilir. Bu nedenle, bir bölgeye yapılan istek, diğer bölgelerde neyin odak noktası olduğunu dikkate almaz ve diğer bölgelerdeki odak noktalarının odağını kaybetmesine neden olmaz. Bu sayede, ana kabinin odağı arka koltuk eğlence sisteminden ayrı olarak yönetilebilir. Böylece, bir bölgedeki odak değişiklikleri başka bir bölgedeki ses oynatmayı kesintiye uğratmaz.

Tüm uygulamalarda CarAudioService, odağı otomatik olarak yönetir. Bir odaklanma isteğinin ses bölgesi, ilişkili UserId veya UID tarafından belirlenir (ayrıntılar için Çok bölgeli ses yönlendirme başlıklı makaleyi inceleyin).

Aynı anda birden fazla bölgeden ses isteğinde bulunma

Bir uygulama, birden fazla bölgede aynı anda ses çalmak istiyorsa pakete AUDIOFOCUS_EXTRA_REQUEST_ZONE_ID ekleyerek her bölge için odak isteğinde bulunmalıdır:

//Create attribute with bundle and AUDIOFOCUS_EXTRA_REQUEST_ZONE_ID
Bundle bundle = new Bundle();
bundle.putInt(CarAudioManager.AUDIOFOCUS_EXTRA_REQUEST_ZONE_ID,
               zoneId);

AudioAttributes attributesWithZone = new AudioAttributes.Builder()
     .setUsage(AudioAttributes.USAGE_MEDIA)
     .addBundle(bundle)
     .build();

//Create focus request using built attributesWithZone

Bu paket parametresi, istekte bulunanın otomatik ses bölgesi eşlemelerini geçersiz kılarak bunun yerine belirtilen bölge kimliğini kullanmasına olanak tanır. Bu nedenle, bir uygulama farklı ses bölgeleri için ayrı istekler gönderebilir.

HAL ses odağı

Android 11'den itibaren HAL, harici akışlar adına odaklanma isteğinde bulunmak için etkinleştirilir. Bu API'lerin kullanımı isteğe bağlı olsa da harici seslerin Android ekosisteminde optimum şekilde yer almasını sağlamak ve sorunsuz bir kullanıcı deneyimi sunmak için bu API'lerin kullanılması önemle tavsiye edilir.

Hangi seslerin önceliklendirileceğine ilişkin nihai kararı HAL verir. Bu nedenle, acil durum ve güvenlik açısından kritik sesler, HAL'e ses odağı verilip verilmediğine bakılmaksızın çalınmalı ve HAL ses odağını kaybetse bile uygun şekilde çalınmaya devam etmelidir. Aynı durum, devlet yönetmeliklerinin gerektirdiği sesler için de geçerlidir.

HAL, acil durum veya güvenlik açısından kritik sesler çalarken Android akışlarını uygun şekilde proaktif olarak kapatmalıdır. Böylece bu seslerin net bir şekilde duyulması sağlanır.

AudioControl@2.0

AudioControl HAL'nin 2.0 sürümünde şu yeni API'ler kullanıma sunulmuştur:

API Amaç
IAudioControl#registerFocusListener AudioControl HAL ile IFocusListener örneğini kaydeder. Bu dinleyici, HAL'ın ses odağı istemesine ve bırakmasına olanak tanır. HAL, dinleyicinin kaydını silmek için Android tarafından kullanılacak bir ICloseHandle örneği sağlar.
IAudioControl#onAudioFocusChange HAL'in IFocusListener üzerinden yaptığı odak isteklerinin durumundaki değişiklikleri (ilk odak isteklerine verilen yanıtlar dahil) HAL'e bildirir.
IFocusListener#requestAudioFocus İstekler, belirtilen kullanım, bölge kimliği ve odak kazanma türü için HAL adına odaklanmaya yöneliktir.
IFocusListener#abandonAudioFocus Belirtilen kullanım ve bölge kimliği için mevcut HAL odak isteklerini bırakır.

HAL aynı anda birden fazla odak isteğine sahip olabilir ancak kullanım ve bölge kimliği eşleştirme başına bir istekle sınırlıdır. Android, bir istek yapıldıktan sonra HAL'ın hemen ses çalmaya başladığını ve odaklanmayı bırakana kadar bunu yapmaya devam ettiğini varsayar.

registerFocusListener dışında, bu istekler oneway olup Android'in odaklanma isteği işlenirken HAL'yi geciktirmemesini sağlar. HAL, güvenlikle ilgili kritik sesleri çalmadan önce odaklanmayı beklememelidir. HAL'ın IAudioControl#onAudioFocusChange aracılığıyla ses odağındaki değişiklikleri dinlemesi ve bunlara yanıt vermesi isteğe bağlıdır.

OEM araç ses odağı hizmeti

AAOS, Android 14'te bazı araç bileşenlerinin yapılandırılabilirliğini sağlamak için araç OEM eklenti hizmetlerini kullanıma sundu. Car Audio Plugin Service için eklenti hizmeti, OEM'lerin araç ses hizmeti tarafından yakalanan odak isteklerini yönetmesine olanak tanır. Bu sayede OEM'ler, kurallar ve yönetmelikler uyarınca gerektiği şekilde odaklanmayı yönetme konusunda daha fazla esnekliğe sahip olur. Bu nedenle, ses odağı etkileşimi üreticiler arasında ve bölgeden bölgeye farklılık gösterebilir. Ses odağıyla ilgili temel önerme geçerliliğini korumaya devam ediyor. Uygulamalar, kullanıcı deneyimini iyileştirmek için sesin daha iyi yönetilmesi amacıyla odak isteğinde bulunmalıdır. Genel olarak, uygulamaların ses odağı isteği için belirli kurallar geçerli olmaya devam eder:

  • Devam eden, yüksek öncelikli bir ses odağı (telefon görüşmesi, acil durum uyarısı veya güvenlik bildirimi dahil) yoksa uygulamalar geçici ya da kalıcı olarak ses odağı kazanabilmelidir.

  • Medya odağı etkin durumdayken:

    • Arama kullanımı odaklanması isteyen uygulamalar, aramayı eşzamanlı veya özel olarak alabilmelidir.

    • Navigasyon kullanım odağı isteyen uygulamalar, navigasyon odağını eşzamanlı veya ayrıcalıklı olarak alabilmelidir.

    • Yardımcı kullanımına odaklanma isteğinde bulunan uygulamalar, kullanım odağını eşzamanlı veya özel olarak alabilmelidir.

  • Yüksek öncelikli ses odağı (telefon görüşmesi, acil durum uyarısı veya güvenlik bildirimi dahil) gerektiren uygulamalar etkin durumdayken, gelen gecikmeli ses odağı istekleri gerektiği gibi verilmeli veya geciktirilmelidir.

Bu öneriler kapsamlı olmasa da odaklanma isteğinde bulunan uygulamaların, etkin ve yüksek öncelikli sesler yoksa odaklanma elde etmesine yardımcı olabilir. Yüksek öncelikli sesler etkin durumdayken bile gecikmeli odaklanma isteklerine uyulmalı ve yüksek öncelikli ses durduğunda odaklanma sağlanabilmelidir.