Bluetooth A2DP(Advanced Audio Distribution Profile
) on Bluetooth Stereo -profiili, joka määrittelee, miten laadukasta stereoääntä voidaan suoratoistaa yhdestä laitteesta toiseen Bluetooth-yhteyden kautta – esimerkiksi musiikkia suoratoistaa matkapuhelimesta langattomiin kuulokkeisiin.
Aikaisemmissa Android-versioissa luokat, joita tarvitaan yhteyden muodostamiseen Bluetooth A2DP -laitteeseen, oli piilotettu API-tasolle ja myöhemmissä versioissa Android 4.0:sta alkaen se on tehty osittain näkyväksi.
Mutta on olemassa ratkaisu, joka toimii kaikissa Android-versioissa, voit helposti olla vuorovaikutuksessa minkä tahansa A2DP-laitteen kanssa tekemällä yksinkertaisesti joitakin IPC-kutsuja (IPC = Inter Process Communication).
Periaatteessa tämä saavutetaan käyttämällä AIDL:ää (Android Interface Definition Language), jonka avulla voidaan periaatteessa määritellä ohjelmointirajapinta, josta sekä asiakas että palvelu sopivat voidakseen kommunikoida keskenään IPC:n avulla.
Miten Bluetooth-laite liitetään mihin tahansa Android-laitteeseen?
Voidaksesi ottaa yhteyden Bluetooth-laitteeseen mihin tahansa Android-laitteeseen ohjelmallisesti sinun tarvitsee vain noudattaa näitä yksinkertaisia vaiheita.
Vaihe 1: Luo AIDL-tiedostot
Ensimmäisenä askeleenamme on päästä käsiksi Bluetooth A2DP-luokan instanssiin. Sitä varten sinun on luotava ensin 2 AIDL-tiedostoa Android-projektin ”src”-kansioon paketin android.bluetooth
alle seuraavasti :
Vaihe 2: Lisää käyttöoikeudet
Sitten lisää Android Manifestiin käyttöoikeudet Bluetoothin ja seuraavien palveluiden käyttämiseen :
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.BIND_ACCESSIBILITY_SERVICE
Vaihe 3: Ota Bluetooth käyttöön ja Hae pariliitetyt laitteet
Ensin on varmistettava, onko Bluetooth käytössä. Voit pyytää, että Bluetooth otetaan käyttöön, soittamalla startActivityForResult()
toiminnolla ACTION_REQUEST_ENABLE
Intent. Tämä antaa pyynnön ottaa Bluetooth käyttöön järjestelmäasetusten kautta.
val enableBtIntent = Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE)
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
Voit hakea jo pariliitetyt laitteet BluetoothAdapter-luokasta seuraavasti:
devices = BluetoothAdapter.getDefaultAdapter().bondedDevices
Laitteista voit hakea kuulokelaitteen, jonka haluat pariliittää
Vaihe 4: Bluetooth-yhteyden muodostaminen
Käyttämällä getProfileProxy()
tapausta voit muodostaa yhteyden profiiliin liitettyyn profiilisi välitystieto-objektiin. Määritä BluetoothProfile.ServiceListener(),
Tämä kuuntelija ilmoittaa BluetoothProfile
IPC-asiakkaille, kun niihin on muodostettu yhteys tai yhteys on katkaistu.
Vaihe 5: Äänen suoratoisto-URL
Seuraavassa vaiheessa suoratoistetaan ääni, joka halutaan toistaa yhdistetyissä Bluetooth-kuulokkeissa. Alusta MediaPlayer ja toista suoratoisto-url alla olevan mukaisesti:
Vaihe 6: Irrota laitteen yhteys
Viimein lopetat äänen toistamisen ja haluat irrottaa laitteen sulkea välityspalvelinyhteyden, käytä seuraavaa menetelmää MediaPlayerin irrottamiseen ja vapauttamiseen: