2014-02-14 48 views
0

我有2個Android手機,我已經設法將其中一個轉換爲耳機(是的,我確實爲此根源電話)。 當手機收到來電時,耳機仿真手機可以執行與耳機相關的操作,例如 - 挑選呼叫,斷開呼叫等。但是,只有缺少的功能是將音頻從手機傳送到耳機模擬-設備。從SCO插座訪問數據

有沒有人有建立2 Android手機之間的SCO連接和訪問語音數據的經驗? (現在,我不關心音質)。

我遇到了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(真)的方法。

+0

感謝您的回覆。我曾嘗試過這種機制。但打開SCO套接字和路由音頻不適合我。你能告訴我哪些設備與你一起工作嗎?我使用Galaxy Nexus 3(運行4.1.1,因爲它有舊的BT堆棧)。 – amsurana

+0

在Nexus 7上爲我工作,但不在Nexus 4或Samsung Galaxy 2上工作。所以我認爲可能是在手機上它不起作用。我不知道。 –

+0

這可能不適用於我的用例。我現在正在查看GingerBread中的ScoSocket實現。儘管這個類在未來的版本中被刪除了。 感謝您的幫助。 – amsurana