Ses Geçişi

Kullanıcılar müziklerini dinlemek için birden çok ses kaynağı cihazını gittikçe daha fazla kullandıklarından kulaklık yönetimi için daha basit bir çözüme yönelik talep artmaktadır. elde edebiliyorlar. Ses Geçişi, mikrofonlu kulaklık bağlantılarının geçişini sorunsuz bir şekilde yapar kullanıcı etkinliğine (ör. film başlatma) dayalı olarak cihazlar arasında geçiş için etkinlikler (ör. gelen arama)

Kullanıcı Deneyimi İlkeleri

  1. Bağlantı geçişi hızlı olmalı ve kullanıcı işlemine dayalı olmalıdır.
  2. Bağlantı geçişi kullanıcılar açısından şeffaf olmalı ve kullanıcıların istenmeyen geçişleri kontrol edebilir/geri döndürebilirsiniz.
  3. Geçiş işleminde kullanıcı gizliliğine saygı gösterilmelidir.

Roller

Audio Switch Seeker: Arayan, bir ses kaynağı cihazıdır (örneğin, telefon veya tablet kullanıyorsanız) uygun olduğunda bağlanabileceğiniz yakındaki bir mikrofonlu kulaklık arayın.

Ses Geçişi Sağlayıcısı: Sağlayıcı, normalde kendi tanıtımını yapan uygunluk ve bağlantı durumlarını görebilirsiniz.

Gereksinimlere Genel Bakış

Sağlayıcıların akıllı geçişi gerçekleştirmek için aşağıdaki koşullara uyması gerekir:

Ad Açıklama Şartlar Zorunlu mu?
Sayfa Tarama Mevcut bir bağlantı olduğunda başka bir arayandan gelen yeni bağlantı isteğini kabul etmek için.
Tek noktalı sağlayıcılar için:
  • Sağlayıcının bağlantısı kesilirken orijinal kaynak cihazın kendi ses çalması otomatik olarak duraklatılır.
Çok noktalı sağlayıcılar için:
  • Hâlâ kullanılabilir bir bağlantı varsa bağlantı isteği kabul edilir.
  • Bağlantı bant genişliği doluysa son kullanılan bağlantının (ör. uzun süredir ses etkinliği olmaması) bağlantısını kesin ve yeni gelen isteği kabul edin.
Performansı artırmak için düşük gecikmeli sayfa tarama modu (tarama aralığı 640 ms'den fazla olmamalıdır) gerekir.
Pil ömrü ve geçiş performansı arasında bir denge kurmak için Sağlayıcı, çoğu durumda varsayılan sayfa tarama moduna sahip olabilir (düşük güç modu, tarama aralığı 1280 ms'den fazla olmamalıdır). Ancak düşük gecikme modu aşağıdaki durumlarda kullanılmalıdır:
  • Açılışta ilk 30 saniye
  • Bağlantı veya sayfalama olmadığında ilk 30 saniye
  • Cihaz boşta kaldığında ilk 30 saniye
Zorunlu
Bağlantı geçmişi Önceki bağlantıya geri dönmek ve varsa çalmaya devam etmek için.
Geri geçiş işlemi, Mesaj Akışı API'leri aracılığıyla iletişim yoluyla tetiklenir.
Mümkünse oynatmanın devam etmesi için duraklatılan ses etkinliği kayda dahil edilmelidir.
Bağlantı geçmişini koruyun ve Mesaj Akışı API'lerini uygulayın. Zorunlu
Bağlantı durumu Arayışların bağlantıyı değiştirerek bağlantı yapması için.Bağlantı durumu şunları içerir:
  • Bağlantı durumu
  • Etkin bağlantının ses türü
  • Etkin bağlantının hesap bilgileri
  • Bağlı cihazlar
BDE reklamına ve mesaj akışına bağlantı durumunu ekleyin. Zorunlu
Çalışma zamanı özellikleri değişikliği Ses geçişi, Sağlayıcı'daki donanım yazılımının yükseltilmesiyle etkinleştirilebilir. Bu nedenle, özelliklerin çalışma zamanında arayan ve sağlayıcı arasında senkronize edilmesi gerekir. Çalışma zamanı özelliklerine erişmek için Message Stream API'lerini uygulayın. Zorunlu
Yapılandırılabilir geçiş kuralları Arayanın, mevcut etkin ses akışı ile yeni ses akışı istekleri arasındaki önceliği kullanıcı tercih ayarlarından yapılandırmasına izin verin.
Örneğin, ses geçişi arayan, kullanıcıların medya akışı ile arama arasında otomatik geçişi etkinleştirmesine/devre dışı bırakmasına olanak tanımak için kullanıcı arayüzü ayarları sağlayabilir.
Ses Geçişi Yapıcı, geçiş kuralını Mesaj Akışı aracılığıyla belirler ve alır.
Yalnızca çok noktalı sağlayıcılar için.
Bağlı cihazlar arasında geçiş kurallarının yapılandırılabilir olması için Message Stream API'lerini uygulayın.
İsteğe bağlı
Etkin cihaz değiştirme Ses geçişinin arayan, bağlı cihazlar arasında ses geçişini simüle etmesine izin verin.
Ses anahtarının arayan tarafında kullanıcıların bağlı cihazlar arasında kolayca geçiş yapmasını sağlayan bir kullanıcı arayüzü bulunabilir.
Yalnızca birden çok noktalı sağlayıcılar için.
Bağlı cihazlar arasındaki etkin ses kaynağını belirlemek amacıyla ses geçişi arayanlar için Message Stream API'lerini uygulayın.
Zorunlu
Birden çok noktalı geçiş bildirimi Ses Geçişi Arayan'ın, geçiş bildirimini göstermesine izin verin. Yalnızca çok noktalı sağlayıcılar.
Çok noktalı geçiş yapıldığında bağlı ses geçişi arayanları bilgilendirmek için mesaj akışı API'lerini uygulayın.
Zorunlu

Reklam yükü

Sağlayıcı, reklama mevcut bağlantı durumunu ekleyecektir. aşağıdaki Hızlı Eşleme Hesabı verilerine dayalı olarak oluşturulur: Reklamcılık: Bulunabilir olmadığında.

Tablo 4.2'nin sürümünün 0x1 olduğunu unutmayın.

Bağlantı Durumu Alanı

Sekiz Veri türü Açıklama Değer Zorunlu mu?
0 uint8 Alan uzunluğu ve türü
0bLLTTTT
  • L = bayt cinsinden bağlantı durumu uzunluğu
  • T = tür
0bLL0101
  • uzunluk: değişken
  • tür = 0b0101
Zorunlu
1 uint8 Bağlantı durumu
0bHAFRSSSS
  • H = kafada algılama
  • A = bağlantı kullanılabilirliği
  • F = odak modu
  • R = otomatik olarak yeniden bağlandı
  • S = bağlantı durumu
0bHAFRSSSS
Zorunlu
2 uint8 Özel veriler
Şu anda yalnızca mevcut ses akışının kullanımını açıklamak için kullanılan içerik türünü barındırıyor. Arayan, sağlayıcıya gönderir.
Değer, mevcut etkin akışın Arayan'dan Sağlayıcı'ya mesaj akışı aracılığıyla gönderilir. Geçerli etkin yayın Arayan'dan değilse 0 değerini alır. Zorunlu
3 - var Bağlı cihazlar bit eşlemi
O anda sağlayıcıya bağlı olan cihazları gösteren bit eşlem. Tüm bağlı cihazlar, bir matbaada bir matbaa olacak şekilde sıralanır. Süre, Sağlayıcı'nın bağlı cihazlarının sayısına bağlıdır.
Cihaz şu anda Sağlayıcıya bağlıysa eşlenen bit 1 olarak, aksi halde 0 olarak ayarlanır.
Ayrıntılar için Bağlı Cihaz Bit Eşlemi bölümüne bakın.
İsteğe bağlı

Tablo 4.1: Bağlantı durumu alanındaki ham veriler

Bağlantı İşaretleri
  • 0bH = kafa algılama

    • 1, şimdi tepede
    • 0, aksi takdirde, kafanızda yok veya OHD sensör yok
  • 0bA = bağlantı kullanılabilirliği

    • 1, kullanılabilir bir bağlantı var
    • 0, aksi durumda
  • 0bF = odak modu

    • 1, şu anda odaklanmış modda, medya için bağlantı geçişine izin verilmiyor kullanımı (ör. A2DP'den A2DP'ye geçiş yapılmaz)
    • 0, aksi durumda
  • 0bR = otomatik olarak yeniden bağlandı

    • 1, mevcut bağlantı Sağlayıcı tarafından otomatik olarak yeniden bağlanıyorsa kullanıcılar tarafından bağlanmamışsa (çok noktalı için, mevcut öğelerden biri bağlantıları otomatik olarak yeniden bağlandıysa 1 olarak ayarlanmalıdır)
    • 0, aksi durumda
Bağlantı durumu
  • 0x0: bağlantı yok
  • 0x1: sayfalama
  • 0x2: bağlı ancak veri aktarımı yok
  • 0x3: Ses harici veri aktarımı (yalnızca değiştirilebilirse, 0xF kullanılarak değiştirilebilir)
  • 0x4: A2DP akışı, AVRCP geçerli değil
  • 0x5: A2DP akışı ve AVRCP oynatma
  • 0x6: HFP (telefon/sesli arama) akışı, bant içi ve bant dışı zil sesleri dahil
  • 0x7: LE Audio - kontrolsüz medya akışı
  • 0x8: LE Audio - kontrollü medya akışı
  • 0x9: LE Audio - arama akışı
  • 0xA: LE Audio - yayın
  • 0xF: Bağlantı anahtarını geçici olarak devre dışı bırak (ör. donanım yazılımı güncellemesi)
LE Audio Bağlam Türü ve Bağlantı durumu

LE Ses Sağlayıcısının belirtilen tüm bağlam türlerini işlemesini önerin Atanan Numaralar 6.12.3'te (Sağlayıcı belirli bir bağlam türünü açıkça desteklemediği sürece) ve bağlam türünü aşağıdaki gibi bağlantı durumuna ayarlayın.

  • Konuşma: 0x9
  • Medya: 0x8
  • Oyun: 0x7
  • Talimat: 0x7
  • Sesli Yardımcılar: 0x9
  • Canlı: 0x9
  • Ses Efektleri: 0x2
  • Bildirimler: 0x2
  • Zil sesi: 0x9
  • Uyarılar: 0x7
  • Acil Durum Alarmı: 0x9

Karma LE Audio bağlam türü senaryosunda (ör. sırasında sırasında, Sağlayıcı, bağlantı durumunu en yüksek önceliğe sahip olan (ör. Yukarıdaki senaryo için 0x8 (medya) yerine 0x9 (çağrı).

Bağlı Cihaz Bit Eşlemi

İstenmeyen bağlantı geçişlerini önlemek için Arayanın, hangi iletişim taktiğinin mikrofonlu kulaklığın şu anda bağlı olduğu cihazlar. Örneğin, mikrofonlu kulaklık bağlı olduğunda, kullanıcının e-posta uygulaması veya diğer aile üyelerinden biri YouTube'u başlattığında, tablete yerleştiriyoruz.

Bu bit eşlemin anonim olduğunu unutmayın. Arayan kişi diğer cihazlar Sağlayıcı'ya bağlanır. Örneğin, 5 bağlı cihaz düşünün:

  • 0: dizüstü bilgisayar (0bx0000000)
  • 1: telefonA (0b0x000000)
  • 2: telefonB (0b00x00000)
  • 3: tablet (0b000x0000)
  • 4: TV (0b0000x000)

Mevcut bağlı cihazlar dizüstü bilgisayar ve tabletse bit eşlem 0b10010000 olur. Kaçınılmazsa sipariş değişikliği kabul edilebilir. ör. Kullanıcılar kulaklığı fabrika ayarlarına sıfırladığında veya bağlı cihazlar sayıldığında üst sınıra ulaştığında

Rastgele Çözümlenebilir Reklam

Kullanıcı gizliliğinin izlenmemesi ve gizliliğinin korunması için, Sağlayıcı, YouTube'a geçiş yaparak AES-CTR kullanarak alanı hesap anahtarıyla şifreleyin:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

burada

  1. Anahtar, kullanılan hesap anahtarından türetilir. sonraki bölümde tanımlanmıştır.

    • Anahtar, SHA-256 kullanılarak HKDF işlevi (IETF RFC 5869) tarafından oluşturulur karma işlevi.

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • Sağlayıcı buradaki orijinal hesap anahtarını (yani ilk baytı) kullanacaktır anahtarının boyutu 0x04'tür ve kullanım kalıbına dahil değildir.

  2. IV (başlangıç vektörü), sıfır ile Hesap Anahtar Verileri'nin 2 baytlık takviyesidir dolgu, ör. IV concat(salt, 14 bayt ZERO)'dur.

  3. Bağlantı durumu ham verileri tablo 4.1'de tanımlanmıştır. bağlantı durumu değiştiğinde, takviye değer ve RPA, aynı reklam zaman aralığı var.

Bu, şifrelenmiş bağlantı durumu alanının Hesap Anahtar Verileri dönüşümlü yayınlanır.

BDE reklamı aşağıdaki gibi yapılandırılacaktır:

Sekiz Veri türü Açıklama Değer Zorunlu mu?
0 uint8 Sürüm ve işaretler 0x10 Zorunlu
1 - t Hesap Önemli Verileri değişiklik gösterir Zorunlu
t+1 - sn Pil Verileri değişiklik gösterir İsteğe bağlı
s+1 - var Rastgele Çözümlenebilir Veriler değişiklik gösterir Hesap Anahtar Listesi boş değilse zorunludur,
aksi takdirde Hariç tutulur.

Tablo 4.2: Rastgele Çözümlenebilir Veriler ile BDE reklamı

Rastgele Çözümlenebilir Veriler şunları içerir:

Sekiz Veri türü Açıklama Değer Zorunlu mu?
0 uint8 Alan uzunluğu ve türü
0bLLTTTT
  • L = şifrelenmiş verilerin uzunluğu
  • T = tür
0bLL0110
  • uzunluk: değişken
  • tür = 0b0110
Zorunlu
1 - var Şifrelenmiş veriler değişiklik gösterir Zorunlu

Tablo 4.2.1: Rastgele Çözümlenebilir Veriler

Örneğin, Rastgele Çözümlenebilir Veriler şifrelenmiş bir bağlantı içeriyorsa şifresi çözülmüş sonuç ise bağlantı durumu alanına dokunun.

Yasal olarak değişiklik yapılmasını önlemek için yukarıdaki Hesap Anahtarı Verileri'nde küçük değişiklikler yapılmalıdır RACI matrisine eklenir. Normalde hesap anahtarı filtresini uyguladığınızda, hesap birleştirildiğinde bir V değeri anahtar filtresine eklemektir. Bunun yerine, Rastgele Çözümlenebilir Veriler de reklamı yapılanlar için V değeri şu şekilde oluşturulmalıdır:

 V = concat(account_key, salt, random_resolvable_data)

Hem Pil Verilerinin hem de Rastgele Çözümlenebilir Verilerin reklamı yapılıyorsa V şu şekilde yapılandırılmalıdır:

 V = concat(account_key, salt, battery_data, random_resolvable_data)

Kullanılan Hesap Anahtarı

Bağlantı geçişi hesaba dayalı olduğundan Sağlayıcı, BDE reklamındaki geçerli bağlantının hesap bilgilerini içerir. Öğe ses anahtarı arayan bir cihaz. Sağlayıcı, ve bu arayan ile ilişkili hesap anahtarını alıp aşağıdaki işlemler için bu hesap anahtarını kullanın: şifrelemeyi deneyin. Bağlı ses kaynağı Ses değilse Sağlayıcı'nın en son kullanılan hesap anahtarını kullanması gerekir.

Sağlayıcı, hesap anahtarı filtresini hesaplamadan önce ilk değerini aşağıdaki kullanım kalıplarından birini dahil etmek için kullanabilirsiniz:

  1. 0b00000100
    Bu hesap anahtarı kullanılmıyor.
    . Bu varsayılan değerdir (Hesap anahtarı bölümünü inceleyin).
  2. 0b00000101
    Bu hesap anahtarı, en son kullanılan hesap anahtarıdır.
    . Bağlantı durumu alanı bu hesap anahtarı tarafından şifrelenir. Hayır, bağlantı durumunun ne olduğunu değil, hesabın hiçbir cihaz bağlı veya bağlı cihaz bir Ses Geçişi Arayan değil olabilir.
  3. 0b00000110
    Bu hesap anahtarı, kullanımdaki hesap anahtarıdır.
    . Bağlantı durumu alanı bu hesap anahtarı tarafından şifrelenir ve bağlı cihaz bu hesap anahtarıyla ilişkilendirilmiş.

Ses geçiş yükü için şema

Aşağıdaki şekilde, ses geçiş yükü için şema gösterilmektedir.

Mesajlar

Bağlandığında, arayan ve sağlayıcı, sesi senkronize etmek için mesaj akışını kullanabilir. değiştirme özelliğini, bağlantı anahtarını tetiklemek, ayarlamak ve geçişi almak bağlantı durumunu bildirme gibi işlemler yapabilir. Bir mesaj grubu oluşturuyoruz ve Ses Geçişi'ne özel mesaj kodları aşağıda verilmiştir.

Mesaj Grubu Adı Değer
Ses kaynağı değiştirme 0x07

Her mesaj koduna ilişkin ek ayrıntılar aşağıdaki bölümlerde açıklanmıştır.

Mesaj Kodu Adı Değer Yalnızca birden çok noktalı Gönderen Katılımcı Şifrele MAC Onayla
Ses geçişi özelliğini kullanma 0x10 N Her ikisi de Her ikisi de, 0x11 koduyla N H N
Ses geçişinin bildirme özelliği 0x11 N Her ikisi de Her ikisi de N E Y
Çok noktalı durumu ayarlama 0x12 Y Arayan Sağlayıcı N E Y
Geçiş tercihini ayarlama 0x20 Y Arayan Sağlayıcı N E Y
Geçiş tercihini alma 0x21 Y Arayan Sağlayıcı, 0x22 koduyla N H N
Geçiş tercihini bildir 0x22 Y Sağlayıcı Arayan N H N
Etkin ses kaynağını(bağlı cihaza) değiştir 0x30 Y Arayan Sağlayıcı N E Y
Geri dön 0x31 N Arayan Sağlayıcı N E Y
Çok noktalı anahtar etkinliğini bildirme 0x32 Y Sağlayıcı Arayan N H N
Bağlantı durumunu alma 0x33 Y Arayan Sağlayıcı, 0x34 koduyla N H N
Bağlantı durumunu bildir 0x34 Y Sağlayıcı Arayan Y H N
Ses geçişi tarafından başlatılan bağlantıyı bildir 0x40 N Arayan Sağlayıcı N E Y
Kullanımda olan hesap anahtarını belirtin 0x41 N Arayan Sağlayıcı N E Y
Özel verileri gönderme 0x42 N Arayan Sağlayıcı N E Y
Drop bağlantı hedefi ayarlama 0x43 Y Arayan Sağlayıcı N E Y

Tablo 4.3: Ses değiştirme mesajları

Ses geçiş mesajlarının MAC adresi

Mesajla kimlik doğrulama için tüm Ses Geçişi mesajlarında Arayan'dan Sağlayıcı'ya gönderilen veriler için bir İleti Kimlik Doğrulama Kodu gerekir. Zaman MAC ile bir mesaj alındığında, arayanın işlemi yapabilmesi için bu mesajın onaylanması gerekir. , Sağlayıcı'nın iletiye tepki verip vermediğini öğrenir.

İleti kimlik doğrulaması başarılı olursa Sağlayıcı, mesaj:

Sekiz Veri Türü Açıklama Değer
0 uint8 Onay 0xFF
1 uint8 Onayla 0x01
2 - 3 uint16 Ek veri uzunluğu değişiklik gösterir
4 uint8 Ses kaynağı değiştirme 0x07
5 uint8 Ses değiştirme mesaj kodu değişiklik gösterir
6 - sn. Ek veriler değişiklik gösterir

Başarısız olursa Sağlayıcı, ileti için NAK'yı gönderecektir:

Sekiz Veri Türü Açıklama Değer
0 uint8 Onay 0xFF
1 uint8 NAK 0x02
2 - 3 uint16 Ek veri uzunluğu 0x0003
4 uint8 Hata nedeni değişiklik gösterir
5 uint8 Ses kaynağı değiştirme 0x07
6 uint8 Ses değiştirme mesaj kodu değişiklik gösterir

Gönderen ise MAC gerekli değildir.

Ses değiştirme özelliğini kullanın

Hem Ses Geçişi Sağlayıcısı hem de arayan, bağlı Hızlı Eşleme'nin Arayan/Sağlayıcı, aşağıdaki mesajı kullanarak Ses Geçişi'ni destekleyip desteklemediğini gösterir:

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Ses değiştirme özelliğini kullanın 0x10
2 - 3 uint16 Ek veri uzunluğu 0

Tablo 4.3.1.0: Ses değiştirme özelliğini kullanma

Ses geçişinin bildirme özelliği

Ses değiştirme özelliği mesajı alındıktan sonra kodunu görürseniz Ses Geçişi Arayan/Sağlayıcı aşağıdakilerden biriyle yanıt verir: işaretler:

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Ses geçişinin bildirme özelliği 0x11
2 - 3 uint16 Ek veri uzunluğu Arayan tarafından gönderilirse 20
Sağlayıcı tarafından gönderilirse 4
4 - 5 uint16 Ses değiştirme sürüm kodu Sıfır olmayan bir değer, Ses Geçişi'ni desteklediği anlamına gelir. Mevcut sürümün (güvenlik geliştirmesiyle) kodu 0x0102'dir.
0x0000 veya 1 saniyede yanıt vermeme, ses geçişinin bu cihazda desteklenmediği anlamına gelir
6 - 7 flags Sağlayıcının ses değiştirme özelliği işaretleri
Bu ileti arayan tarafından gönderilirse bu iki bayt yoksayılmalıdır.
değişiklik gösterir
Ses değiştirme özelliğiyle ilgili işaretler bölümüne bakın
8 - 15 Mesaj tek seferlik rastgele sayısı
Yalnızca arama yapan kullanıcı tarafından gönderildiğinde gereklidir
değişiklik gösterir
16 - 23 Mesaj kimlik doğrulama kodu
Yalnızca Arayan tarafından gönderildiğinde gereklidir
değişiklik gösterir

Tablo 4.3.1.1: Ses geçişinin bildirme özelliği

Ses değiştirme özelliği işaretleri
  1. Bit 0 (sekizli 6, MSB): Ses geçiş durumu

    • Ses geçişi durumu açıksa 1
    • 0, aksi durumda
  2. Bit 1: Çok noktalı yapılandırılabilirlik

    • Cihaz birden çok noktalı doğrulamayı destekliyorsa ve açık ile kapalı
    • 0, aksi takdirde (çok noktalı veya çoklu noktalı her zaman açık değildir)
  3. Bit 2: Çok noktalı geçerli durum

    • Birden çok noktalı açıksa 1
    • 0, aksi durumda
  4. Bit 3: Kafanızda algılama

    • 1, şimdi kapalı)
    • 0, aksi durumda
  5. Bit 4: Kafada algılama mevcut durumu

    • Kafada algılama açıksa 1
    • 0, aksi takdirde (başta algılamayı veya üzerinizde algılamayı desteklemez) devre dışı)
  6. Diğer tüm bitler ayrılmıştır (varsayılan olarak 0).

Çok noktalı durumu ayarlama

"Ses Geçişi Yapan" kullanıcıları için ayarı, kullanıcıların açıp kapatmasını sağlayabiliriz. çok noktalı işlevsellik. Arayan, birden çok noktalı durumu Aşağıdaki mesajı kullanan sağlayıcı:

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Çok noktalı durumu ayarlama 0x12
2 - 3 uint16 Ek veri uzunluğu 17
4 uint8 Çok noktalı durum 0: birden çok noktalı kapat
1: birden çok noktalı aç
5 - 12 Mesaj tek seferlik rastgele sayısı değişiklik gösterir
13 - 20 Mesaj kimlik doğrulama kodu değişiklik gösterir

Tablo 4.3.1.2: Çok noktalı durumu ayarlama

Geçiş tercihini ayarlayın

Ses geçişi arayanlar, birden çok noktalı ve setin geçiş tercihini değiştirebilir aşağıdaki mesajı kullanarak sağlayıcıya gönderebilirsiniz:

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Geçiş tercihini ayarlayın 0x20
2 - 3 uint16 Ek veri uzunluğu 18
4 flags Geçiş tercihi değişiklik gösterir
Çok noktalı geçiş tercihi işaretini inceleyin
5 Gelişmiş geçiş ayarları
Bu bayt ayrılmıştır, varsayılan değer 0'dır
değişiklik gösterir
6 - 13 Mesaj tek seferlik rastgele sayısı değişiklik gösterir
14 - 21 Mesaj kimlik doğrulama kodu değişiklik gösterir

Tablo 4.3.2.0: Geçiş tercihini ayarlama

Çok noktalı geçiş tercihi işareti
  • Bit 0 (MSB): A2DP - A2DP karşılaştırması (varsayılan 0)
  • Bit 1: HFP ve HFP (varsayılan 0)
  • Bit 2: A2DP - HFP karşılaştırması (varsayılan 0)
  • Bit 3: HFP ve A2DP karşılaştırması (varsayılan 1)
  • Bit 4 - 7: ayrılmış
  • Yukarıda "yeni profil isteği" olarak temsil edilir - "geçerli etkin profil"
    • Geçiş yapılmaması için 0
    • Geçiş için 1

Geçiş tercihini alın

Ses geçişi arayanlar, çoklu noktanın geçiş tercihini şuradan sorgulayabilir: Aşağıdaki mesajı kullanan sağlayıcı:

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Geçiş yapılandırmasını alma 0x21
2 - 3 uint16 Ek veri uzunluğu 0

Tablo 4.3.2.1: Geçiş tercihini alma

Geçiş tercihini bildir

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Geçiş tercihini bildir 0x22
2 - 3 uint16 Ek veri uzunluğu 2
4 flags Tercih işaretlerini değiştirme değişiklik gösterir
Çok noktalı geçiş tercihi işaretini inceleyin
5 Gelişmiş geçiş ayarları
Bu bayt ayrılmıştır, varsayılan değer 0 olmalıdır
değişiklik gösterir

Tablo 4.3.2.2: Geçiş tercihini bildirme

Etkin ses kaynağını (bağlı cihaza) değiştir

Ses geçişi arayanlar, birden çok noktalı sağlayıcıdan etkin aşağıdaki mesajı kullanarak bağlı cihazlar arasındaki ses kaynağı:

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Etkin ses kaynağını (bağlı cihaza) değiştir 0x30
2 - 3 uint16 Ek veri uzunluğu 17
4 flags Etkin ses kaynağı etkinlik bayraklarını değiştirme değişiklik gösterir
Etkin ses kaynağı etkinliğini değiştirme konusuna bakın
5 - 12 Mesaj tek seferlik rastgele sayısı değişiklik gösterir
13 - 20 Mesaj kimlik doğrulama kodu değişiklik gösterir

Tablo 4.3.3.0: Etkin ses kaynağını değiştirme (bağlı cihaza)

Etkin ses kaynağı etkinliğini değiştirme
  • Bit 0 (MSB): Bu cihaza 1 anahtar, ikinci bağlı cihaza 0 geçiş
  • Bit 1: 1 geçişten sonra cihazda anahtarda oynatmaya devam eder, aksi takdirde 0 değerini alır. Oynamaya devam ederseniz Sağlayıcı, Arayan'a PLAY bildirimi gönderir AVRCP profili aracılığıyla. Önceki durum (geçişten önce) değilse PLAY, Sağlayıcı bu işareti görmezden gelmelidir.
  • Bit 2: Uzaktayken cihazda SCO'yu reddeder, aksi takdirde 0 değerini alır
  • Bit 3: Uzaktaki anahtarda 1 Bluetooth bağlantısını keser, aksi takdirde 0 değerini alır.
  • Bit 4 - 7: ayrılmış.

Ses geçişi arayanlar, durumlarını her zaman doğru bilmeyebilir. Bu nedenle, "bu cihaza geçin" isteği göndermesi için arayan, zaten etkin cihazda. Bu durumda, Arayan'da doğru kullanıcı arayüzünü göstermek için Sağlayıcı, "0x4 - Gereksiz cihaz işlemi" hata nedeniyle bir NAK gönderebilir.

Birden fazla grup üyesi olan bir LE Ses Sağlayıcısı için Arayan'dan tüm üyelerin bağlantısını keser, aksi takdirde Arayan kişi, sağlayıcıya yeniden bağlanır.

Geri dön (bağlantısı kesilmiş cihaza)

Bağlantı geçişi istenmeyen bir işlemse kullanıcılar geçişi geri alabilir ve belirli senaryolarda, en aza indirmek için ses bağlantısını olabilir. Arayan, eski sürüme geri dönmek için aşağıdaki mesajı kullanır:

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Geri dön (bağlantısı kesilmiş cihaza) 0x31
2 - 3 uint16 Ek veri uzunluğu 17
4 uint8 Eski sürüme geç etkinliği değişir
0x01: geri dön
0x02: geri dönüp oynatmaya devam edin
5 - 12 Mesaj tek seferlik rastgele sayısı değişiklik gösterir
13 - 20 Mesaj kimlik doğrulama kodu değişiklik gösterir

Tablo 4.3.3.1: Geri dönme (bağlantısı kesilmiş cihaza)

Çok noktalı Sağlayıcılar için bir bağlantı değiştirmek amacıyla Sağlayıcı, bir ses kaynağı cihazıyla bağlantı kurar ve diğer cihazdaki ses oturumunu duraklatır ses kaynağı. Örneğin, çok noktalı mikrofonlu kulaklığın bir tablet ve üçüncü desteklenen üçüncü bir Ses Geçiş cihazı. Kullanıcı şurada video izliyor: telefonunda gelen bir çağrı olduğunda tablete geri bildirim gönderir. Telefon Mikrofonlu kulaklıkta, 3. cihazın bağlantısını kesmesi gereken bir bağlantı anahtarı için bağlantısını kestiğinizde, medyayı duraklatırken telefondan zil sesi almak için tablette oturum açın. Kullanıcı reddederse telefon, mikrofonlu kulaklıktan "geri dönüp oynatmaya devam etmesini" isteyebilir. Bu istek alındığında, mikrofonlu kulaklığın üçüncü cihaza yeniden bağlanması gerekir. duraklatılmış videoyu tablette oynatmaya devam edin.

Çok noktalı geçiş etkinliğini bildir

Kullanıcıların birden çok noktaya geçiş yaptıklarından haberdar olmalarını sağlamak için Arayan, kullanıcılara bildirim gösterebilir. Sağlayıcı, bağlı olduğu için Geçiş etkinliğiyle ilgili ses geçişi arayanlar.

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Birden çok noktalı anahtar etkinliğini bildir
Sağlayıcı, "Ses Geçişi Arayan"dan Sessiz Arayıcıya, Sessiz Geçiş Arayan'dan "Sese Geçirici"ye ve Ses Geçişi Arayan'dan Sese Geçiş Yapan'a geçiş de dahil olmak üzere her geçişte bunu göndermelidir
0x32
2 - 3 uint16 Ek veri uzunluğu değişiklik gösterir
4 uint8 Değiştirme nedeni
Bu değer, Bağlantı durumuna göre belirlenmelidir. LE Audio kullanım alanlarında LE Audio Context Type ve Connection status (LE Audio Bağlam Türü ve Bağlantı durumu) arasındaki eşlemeye bakmak faydalı olabilir. Örneğin, Sesli Asistan'a karşılık gelen bağlantı durumu 0x9'dur(LE ses - arama akışı). Bu nedenle, Sesli Asistanlar tarafından başlatılan bir geçişin geçiş nedeni 0x02 olmalıdır.
değişken
0x00: Belirtilmemiş
0x01: Medya (ör. A2DP akışı, LEA medya akışı)
0x02: Arama (ör. HFP akışı, LEA arama akışı)
5 uint8 Hedef cihaz değişiklik gösterir
0x01: bu cihaz
0x02: başka bir bağlı cihaz
6 - n utf8 Hedef cihaz adı
Hedef cihaz "Ses Geçişi Yapan" ise arayanın gönderdiği adı kullanır, uygun değilse BT adını kullanır ve adresinin son 2 baytını kullanır.
değişiklik gösterir

Tablo 4.3.3.2: Birden çok noktalı geçiş etkinliğini bildirme

Bağlantı durumunu alma

Arayan, geçerli bağlantı durumunu Sağlayıcıdan öğrenebilir:

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Bağlantı durumunu alma 0x33
2 - 3 uint16 Ek veri uzunluğu 0

Tablo 4.3.3.3: Bağlantı durumunu alma

Sağlayıcı, bu mesajı aldıktan sonra mesaj koduyla 0x34, bağlantı durumunu bildir.

Bağlantı durumunu bildir

BLE reklam yükünde tanımlandığı gibi, çok noktalı Sağlayıcılar, sağlayıcı, bağlayıcı herhangi bir reklam paketinin kullanıma sunulmasından sonra, ve değişiklikle ilgili aynı hesap anahtarını kullanıyorlarsa. Sağlayıcı bağlıysa anahtar Arayan etkin olduğunda, Sağlayıcı, bağlı Ses cihazını da bilgilendirmelidir. Arayıcı'ya bağlantı durumu hakkında bilgi verin (arayan kişinin hesap anahtarını kullanarak).

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Bağlantı durumunu bildir 0x34
2 - 3 uint16 Ek veri uzunluğu değişiklik gösterir
4 uint8 Etkin cihaz bayrağı değişir
0x00: Bu arayan pasiftir ve etkin cihaz aynı hesap anahtarını (
0x01) kullanıyor: Bu arayan, etkin cihaz
0x02: Bu arayan pasif, etkin cihaz ise Ses Geçişi Arayan değil.
5 - n Şifrelenmiş bağlantı durumu değişiklik gösterir
n+1 - n+8 Mesaj tek seferlik rastgele sayısı değişiklik gösterir

Tablo 4.3.3.4: Bağlantı durumunu bildirme

Şifrelenmiş bağlantı durum mesajı

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

Bu örnekte:

Ses geçişi tarafından başlatılan bağlantıyı bildir

Ses Geçişi Sağlayıcılarının, bağlantı geçişinin tetiklenip tetiklenmediğini bilmesi gerekebilir ses geçişi tarafından farklı tepkiler vermek için (ör. ses için ses sinyallerini devre dışı bırak Etkinlikler arasında geçiş yapın. Arayan, Sağlayıcı'ya bu bağlantı, ses geçişi tarafından başlatılan bir bağlantıydı.

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Ses geçişi tarafından başlatılan bağlantıyı bildir 0x40
2 - 3 uint16 Ek veri uzunluğu 17
4 uint8 Ses geçişi başlatıldı bağlantı göstergesi değişiklik gösterir
0: Bu bağlantı, ses geçişi tarafından tetiklenmez
1: Bu, ses geçişi tarafından başlatılan bir bağlantıdır.
5 - 12 Mesaj tek seferlik rastgele sayısı değişiklik gösterir
13 - 20 Mesaj kimlik doğrulama kodu değişiklik gösterir

Tablo 4.3.4.0: Ses değiştirme tarafından başlatılan bağlantıyı bildirme

Kullanımdaki hesap anahtarını belirtin

Arayan'da birden fazla hesap anahtarı (ör. birden çok kullanıcı) aradığı takdirde, aşağıdaki mesajı kullanarak hangi hesabın anahtar kullanımda.

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Kullanımdaki hesap anahtarını belirtin 0x41
2 - 3 uint16 Ek veri uzunluğu 22
4 - 9 utf8 Kullanılan dize UTF8 ("kullanımda")
10 - 17 Mesaj tek seferlik rastgele sayısı değişiklik gösterir
18 - 25 Mesaj kimlik doğrulama kodu değişiklik gösterir

Tablo 4.3.4.1: Kullanımdaki hesap anahtarını belirtme

Bu mesajı aldıktan sonra, Sağlayıcı hangi hesap anahtarının kullanımda olduğunu öğrenebilir (Mesajın kimlik doğrulama kodunu doğrulayarak).

Özel veri gönder

Etkin durumdaki ses geçişi arayan, bilgileri (ör. ses kullanımı) ve ses akışının özel veri baytı biçiminde aşağıdaki mesajı gönderin:

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Özel veri gönder 0x42
2 - 3 uint16 Ek veri uzunluğu 17
4 uint8 Özel veriler değişiklik gösterir
5 - 12 Mesaj tek seferlik rastgele sayısı değişiklik gösterir
13 - 20 Mesaj kimlik doğrulama kodu değişiklik gösterir

Tablo 4.3.4.2: Özel verileri gönderme

Sağlayıcı, özel verileri aldıktan sonra reklam paketini günceller eklemeniz gerekir. Birden çok noktalı sağlayıcı için bağlantı durumunun aynı hesap anahtarını kullanarak başka bir bağlı arayanla değişmesi

Lansman bağlantısı hedefi belirleyin

Çok noktalı mikrofonlu kulaklıklarda, bırakılması tercih edilen bağlantı son kullanılanlardan biri, ses geçişi arayanlar sağlayıcıya hangi cihazın şu iletiyi kullanarak bırakın:

Sekiz Veri Türü Açıklama Değer
0 uint8 Ses kaynağı değiştirme 0x07
1 uint8 Lansman bağlantısı hedefi belirleyin 0x43
2 - 3 uint16 Ek veri uzunluğu 17
4 uint8 Bırakılacak bağlı cihazı hedefleyin değişiklik gösterir
1: bu cihaz
5 - 12 Mesaj tek seferlik rastgele sayısı değişiklik gösterir
13 - 20 Mesaj kimlik doğrulama kodu değişiklik gösterir

Tablo 4.3.4.3: Kesintili bağlantı hedefi ayarlama

Referans Uygulama

Referans uygulama için Yakındaki yerleşik SDK kitaplığına bakın