Bluetooth A2DP(Advanced Audio Distribution Profile
) je profil Bluetooth Stereo, který definuje způsob streamování vysoce kvalitního stereofonního zvuku z jednoho zařízení do druhého prostřednictvím připojení Bluetooth – například streamování hudby z mobilního telefonu do bezdrátových sluchátek.
Ve starších verzích systému Android byly třídy, které jsou nutné pro připojení k zařízení Bluetooth A2DP, skryty na úrovni API a v pozdějších verzích od Androidu 4.0 jsou částečně zviditelněny.
Existuje však řešení, které bude fungovat na všech verzích systému Android, můžete snadno komunikovat s libovolným zařízením A2DP jednoduše pomocí několika volání IPC (Inter Process Communication).
Zásadně se toho dosáhne použitím jazyka AIDL (Android Interface Definition Language), který v podstatě umožňuje definovat programové rozhraní, na kterém se klient i služba dohodnou, aby spolu mohli komunikovat pomocí IPC.
Jak připojit zařízení Bluetooth k libovolnému zařízení se systémem Android?
Chcete-li umožnit připojení zařízení Bluetooth k libovolnému zařízení se systémem Android programově, stačí provést tyto jednoduché kroky.
Krok 1: Vytvoření souborů AIDL
Naším prvním krokem je získat instanci třídy Bluetooth A2DP. Za tímto účelem je třeba nejprve vytvořit 2 soubory AIDL ve složce „src“ projektu Android v balíčku android.bluetooth
takto :
Krok 2. Vytvoření souborů AIDL: Přidejte oprávnění
Poté v manifestu Androidu přidejte oprávnění pro používání Bluetooth a následujících služeb :
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.BIND_ACCESSIBILITY_SERVICE
Krok 3: Povolení Bluetooth a získání spárovaných zařízení
Nejprve musíte zajistit, zda je Bluetooth povoleno. Chcete-li požádat o povolení Bluetooth, zavolejte startActivityForResult()
s akcí ACTION_REQUEST_ENABLE
Záměr. Tím vydáte požadavek na povolení Bluetooth prostřednictvím nastavení systému.
val enableBtIntent = Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE)
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
Již spárovaná zařízení můžete získat ze třídy BluetoothAdapter následujícím způsobem:
devices = BluetoothAdapter.getDefaultAdapter().bondedDevices
Ze zařízení můžete získat zařízení náhlavní soupravy, které chcete spárovat
Krok 4: Navázání spojení Bluetooth
Pomocí getProfileProxy()
navážete spojení s objektem proxy profilu přidruženým k profilu. Nastavte BluetoothProfile.ServiceListener(),
Tento posluchač oznamuje BluetoothProfile
klientům IPC, když byli připojeni ke službě nebo od ní odpojeni.
Krok 5: Streamování zvukové adresy URL
Dalším krokem je streamování zvuku, který chcete přehrát na připojených sluchátkách Bluetooth. Inicializujte MediaPlayer a přehrajte streamovanou url adresu, jak je uvedeno níže:
Krok 6: Odpojení zařízení
Když konečně skončíte s přehráváním zvuku a chcete zařízení odpojit, uzavřete proxy připojení, použijte následující metodu pro odpojení a uvolnění MediaPlayeru:
.