所以我有一个需要通过蓝牙向Android设备发送数据的覆盆子pi。我无法控制覆盆子pi的代码(它是由其他人开发的并且已经在运行且无法更改)并且它通过频道1上的rfcomm将数据发送到Android设备。 Android设备是服务器,而raspberry pi是客户端。
这是问题出现的片段。
BluetoothServerSocket bss;
BluetoothAdapter ba = BluetoothAdapter.getDefaultAdapter();
Method m = null;
m = ba.getClass().getMethod("listenUsingInsecureRfcommOn", new Class[]{int.class});
bss = (BluetoothServerSocket) m.invoke(ba, 1);
bss.accept();
它给了我这个错误:
W / System.err:java.lang.reflect.InvocationTargetException
W / System.err:at java.lang.reflect.Method.invoke(Native Method)
W / System.err:at com.example.MainActivity $ 1.run(MainActivity.java:58)
W / System.err:at java.lang.Thread.run(Thread.java:818 )W / System.err:引起:java.io.IOException:错误:-1
W / System.err:在android.bluetooth.BluetoothAdapter.listenUsingInsecureRfcommOn(BluetoothAdapter.java:2458)< br /> W / System.err:......还有3个
我还对该设备进行了sdptool浏览,但它没有显示任何使用rfcomm频道1的服务。当我选择任何其他频道号时,BluetoothServerSocket成功创建。
很想听到遇到同样情况的人的消息。感谢。