Доступ к данным из SCO Socket
У меня есть 2 телефона Android, и мне удалось преобразовать один из них в гарнитуру (да, я сделал для этого рут-телефон). Когда на телефон поступает входящий вызов, телефон с эмуляцией гарнитуры может выполнять действия, связанные с гарнитурой, такие как - выбор вызова, отсоединение вызова и т. Д. Однако отсутствует только функция передачи звука с телефона на эмуляцию гарнитуры. устройство.
Есть ли у кого-то опыт установки SCO-соединения между двумя телефонами Android и доступа к голосовым данным? (На данный момент меня не интересует качество звука).
Я сталкивался с A2DP, но он только однонаправленный. Только SCO является двунаправленной передачей голосовых данных.
Любая помощь или указатели будут высоко оценены.
1 ответ
Я сделал это с отражением. Это работало только на определенных устройствах, хотя. Не все. Хотя я не рутировал устройство.
Class cls = Class.forName("android.bluetooth.BluetoothDevice");
Method method = cls.getDeclaredMethod("createScoSocket", (Class[])null);
BluetoothSocket scoSocket = (BluetoothSocket)method.invoke(device, null);
scoSocket.connect();
Также есть методы AudioManager.startBluetoothSco() и AudioManager.setBluetoothScoOn(true), которые вы должны использовать при воспроизведении аудио.