2012-04-13 11 views
11

別の電話機(任意の電話機)に接続してハンズフリー機能を実行するために、Android端末をハンズフリーキット(車用など)として使用しようとしていますハンズフリープロファイル用のATコマンドを使用して実行できるような(着信呼に応答する、拒否する、など) 私はよく知られているBluetoothチャットアプリケーションを使用しています。デバイスとの接続を確立するために反射を回避しています:ハンズフリープロフィールでAndroidと別の電話機とのBluetooth接続

メソッドm = device.getClass()。getMethod( "createRfcommSocket"、newクラス[] {int.class}); tmp =(BluetoothSocket)m.invoke(device、1);

ただし、ハンズフリー機能を実現し、送信しているATコマンドを理解するには、接続されている電話機がUUIDを使用するハンズフリープロファイル( "0000111f-0000-1000-8000-00805F9B34FB"

したがって、ハンズフリープロファイルに接続する方法はありますか?

ありがとうございます!

+0

Bluecove Library "http://bluecove.org/"を使用してHF Bluetooth接続を確立することができました。これで、ATコマンドを使用して、接続された電話機でコールを制御および管理できるようになりました。また、完全なハンズフリー機能のために、接続された電話機は音声をAndroidにルーティングしますが、Sinkの役割を持たないため、受信しません。私はSCOチャンネルがAndroidでは実装されているが、音声をヘッドセットに送信するためのソースの役割として認識しています。したがって、Androidにシンクの役割を実装する方法はありますか?AndroidのBlueZスタックはこれをサポートしていますか? – mjabdelhadi

+0

これはまさに私がやろうとしていることです。あなたはそれに成功しましたか? –

答えて

3

他に選択肢がない場合にのみ、このコードを使用してください。このコードの1はRFCOMMポートです。各サービスには独自のRFCOMMポートがあります。このポートは通常1〜31の間でランダムです。接続したいデバイスでサービス(ここではハンズフリープロファイル)が使用しているポートを知る必要があります。

try { clientSocket = bluetoothDevice.createRfcommSocketToServiceRecord(serviceUUID); } 
catch (IOException e) 
{ 
    // handle error 
} 

このコードは、Bluetoothを使用するための正しい方法であり、あなたが使っているものを交換する必要があります。これを行うには、BluetoothDeviceオブジェクトからcreateRfcommSocketToServiceRecordメソッドを使用する必要があります。

関連する問題