用Android 开发一个应用,其中想使用蓝牙来作数据交换。服务器
先查了一下资料,感受还算简单,因而就开始了一成天的痛苦历程。socket
基本上用discover之类的可以很快的发现对方的蓝牙设备,可是在spa
创建socket的时候,就出了一堆问题。刚开始,服务端用server
adapter.listenUsingRfcommWithServiceRecordip
加上某个UUID来监听,同时得到serverSocket,客户端用 开发
serverDevice.createRfcommSocketToServiceRecordget
来获取socket,而后就在 socket.connect的时候,出了不少it
奇怪的错误。io
最开始是 Service discovery failed ,class
而后是 connection refused,
而后是 File descriptor in bad state
总之搜索了一下,确实千奇百怪的错误都有。后来看到有人用
Method m = serverDevice.getClass().getMethod( "createRfcommSocket", new Class[]{int.class});
BluetoothSocket socket = (BluetoothSocket) m.invoke( serverDevice, Integer.valueOf( 1));