2013-03-27 78 views
9

我工作的一個應用程序,我需要通過藍牙協議從一個設備轉移呼叫到另一個(即我所希望的方式類似設備將呼叫轉移到免提)。有任何想法嗎?呼叫轉移到另一個通過藍牙

+1

有作爲「轉移呼叫」在這種情況下沒有這樣的事情。轉移呼叫意味着將其從一部電話轉移到另一部電話(由此原始電話不再是通話的一部分)。您正嘗試激活外部揚聲器/麥克風。如果先前配對的設備在通話過程中被發現處於範圍內,則Android會自動執行此操作。 – mah 2013-03-27 11:36:57

+0

@mah所以當兩個設備都配對時,可以說設備「a」是一臺電腦,而設備「b」是一部電話,如果他們已經配對,並且我接到我的電話,那麼電腦可以像汽車-揚聲器? – Elior 2013-04-25 11:57:04

+0

@Elior如果你的PC扮演藍牙揚聲器的角色,就像一些汽車那樣做,但這取決於PC暴露在遠程設備上的功能(儘管可能,這不是我以前聽說過的做過的事情...通常它在相反的方向工作 - 電腦把音頻發送到遠程藍牙揚聲器/耳機)。 – mah 2013-04-25 13:24:09

回答

4

一般來說,你不能。 Android藍牙堆棧實現了幾個藍牙配置文件,包括HFPA2DP。 Android是兩個配置文件的音頻源,並將音頻流傳輸至連接的耳機。 耳機應該實現免提單元(HF)功能和Android - 音頻網關(AG) - 如Bluetooth.org所述。

現在你想在Android設備上HF功能,其設計支持AG。您需要爲該設備實現HFP配置文件(HF端),而實際上您需要將其用作耳機。看看profile model。 HFP基於RFCOMM(由Android API支持)和SDP(不存在於API中)。你將無法從BlueDroid訪問某些部件(修改SDP等),其是在堆棧層上。因此,您的手機無法假裝成具有HF功能的耳機。

當然,您可以通過RFCOMM發送所有內容(據我所知它是異步的),但Android藍牙API沒有直接支持。與RFCOMM實施需要SCO link(SCO插座),它也可以隱藏在Android操作系統堆棧層(找不到創建通過API這種插座的方式)。