2013-03-27 13 views
9

私はBluetoothプロトコルを使用してデバイス間でコールを転送する必要があるアプリケーションで作業しています(つまり、デバイスが携帯電話をハンズフリーに転送する方法が必要です)。何か案は?Bluetoothを使用してデバイス間でコール転送

+1

この文脈では、「呼び出しを転送する」ということはありません。電話を転送するとは、ある電話から別の電話に移動することです(元の電話はもはやコールの一部ではありません)。外部スピーカー/マイクを起動するだけです。以前にペア設定されたデバイスが通話中に範囲内にあることが検出された場合、Androidではこれが自動的に実行されます。 – mah

+0

@mahそうですね、両方のデバイスがペアになっていると、デバイス「a」はPC、デバイス「b」は電話です、既にペアリングされていて、電話でコールすれば、PCは車のように動作します-スピーカー? – Elior

+0

@EliorあなたのPCがブルートゥーススピーカーとしての役割を果たしている場合は、いくつかの車ははいですが、PCがどのような機能をリモートデバイスに公開しているかによって異なります(そして、可能ですが、 ...通常は逆方向に動作します.PCはオーディオをリモートのBluetoothスピーカー/ヘッドセットに送ります)。 – mah

答えて

4

通常はできません。 Android Bluetoothスタックには、HFPA2DPを含むいくつかのBluetoothプロファイルが実装されています。 Androidは両方のプロファイルのオーディオソースであり、オーディオを接続されたヘッドセットにストリームします。 Bluetooth.orgに記載されているように、ハンズフリーユニット(HF)とAndroid - Audio Gateway(AG)を実装する必要があります。

これで、AndroidデバイスにHF機能が欲しくなりました。この機能は、設計上、AGをサポートしています。実際にヘッドセットとして機能させるには、デバイスのHFPプロファイル(HF側)を実装する必要があります。 profile modelをご覧ください。 HFPは、RFCOMM(Android APIでサポート)とSDP(APIでは存在しない)に基づいています。スタックレイヤーにあるBlueDroid(SDPの変更など)から一部の部分にアクセスすることはできません。したがって、あなたの携帯電話は、HF機能を備えたヘッドセットのふりをすることはできません。

もちろん私は知っている限り非同期ですが、これについてはAndroid Bluetooth APIからの直接サポートはありません。 RFCOMMを実装するにはSCO link(SCOソケット)が必要であり、Android OSスタックレイヤーで隠されている可能性があります(API経由でソケットを作成する方法が見つからない場合もあります)。

関連する問題