Android SPP蓝牙到非Android设备

时间:2010-05-20 14:26:24

标签: android bluetooth rfcomm

我正在尝试模仿gilead(here)的成功,但到目前为止他的应用程序中的代码都失败了。我尝试了多个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!");
    ...
}

1 个答案:

答案 0 :(得分:2)

根据BluetoothDevice createRfcommSocketToServiceRecord

  

如果您要连接蓝牙串行板,请尝试使用   着名的SPP UUID 00001101-0000-1000-8000-00805F9B34FB。