无法在通道1上使用listenUsingInsecureRfcommOn创建BluetoothSocketServer

时间:2017-10-16 03:09:53

标签: java android bluetooth sdp rfcomm

所以我有一个需要通过蓝牙向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成功创建。

很想听到遇到同样情况的人的消息。感谢。

0 个答案:

没有答案