Я пытаюсь имитировать успех gilead (here), но пока его код в моем приложении не удается. Я пробовал несколько UUID, но ничего не работает. Когда я бегу sdptool records [address]
я получаю:Android SPP bluetooth для Android-устройства
$ 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!");
...
}