用Android 开发一个应用,其中想使用蓝牙来做数据交换。
先查了一下资料,感觉还算简单,于是就开始了一整天的痛苦历程。
基本上用discover之类的能够很快的发现对方的蓝牙设备,但是在
建立socket的时候,就出了一堆问题。刚开始,服务端用
adapter.listenUsingRfcommWithServiceRecord
加上某个UUID来监听,同时获得serverSocket,客户端用
serverDevice.createRfcommSocketToServiceRecord
来获取socket,然后就在 socket.connect的时候,出了很多
奇怪的错误。
最开始是 Service discovery failed ,
然后是 connection refused,
然后是 File descriptor in bad state
总之搜索了一下,确实千奇百怪的错误都有。后来看到有人用
Method m = serverDevice.getClass().getMethod( "createRfcommSocket", new