2

私は gilead の成功を真似ようとしています (ここ) が、これまでのところ、私のアプリの彼のコードは失敗しています。複数の UUID を試しましたが、何も機能しません。実行すると、次のようsdptool records [address]になります。

$ sdptool records 00:12:F3:04:80:80
sdptool records 00:12:F3:04:80:80
Service Name: SPP
Service RecHandle: 0x10001
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Failed to connect to SDP server on 00:12:F3:04:80:80: Connection timed out

デバイスがチャネル 1 にあることを示しているため、コードが機能しない理由がわかりません。私はAndroid 2.1を実行しています。他のデバイスにアクセスすることはできません.tmpsockのデバッグ中.connect()は、呼び出される前にすべての正しい値があります。

私のコード

public void test(BluetoothDevice d) throws Exception
{
 BluetoothSocket tmpsock = null;
 OutputStream out = null;
 InputStream in = null;
 int port = 1;
 Method m = d.getClass().getMethod("createRfcommSocket", new Class[] { int.class });
 tmpsock = (BluetoothSocket)m.invoke(d, port);
 Log.d("BT", "CONNECTING!!!!");
 tmpsock.connect();
 Log.d("BT", "CONNECTED!");
    ...
}
4

1 に答える 1

2

BluetoothDevice createRfcommSocketToServiceRecordによると

Bluetooth シリアル ボードに接続している場合は、既知の SPP UUID 00001101-0000-1000-8000-00805F9B34FB を使用してみてください。

于 2011-08-30T18:02:39.557 に答える