手机利用蓝牙搜索配对上蓝牙设备,连接上后蓝牙设备给手机传输数据,此蓝牙设备不是BLE设备,并且通信过程中利用BluetoothSocket进行通信,但是获取不到数据,有可能设备传输的数据加密了还是必须知道数据格式??求大神给点思路,卡这一块2周了,希望能够交流下
读取和发送是不同的流 不知道你的代码怎么写的,大致上应该是这个样子,具体内容
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
try {
BluetoothServerSocket serverSocket = adapter.listenUsingInsecureRfcommWithServiceRecord("name", uuid);
BluetoothSocket socket = serverSocket.accept();
OutputStream outputStream = socket.getOutputStream();
//输出流给蓝牙设备发送信息
byte[] msg = new byte[1024];
outputStream.write(msg);
//输入流 手机接收信息
InputStream inputStream = socket.getInputStream();
while (true) {
byte[] buffer = new byte[1024];
inputStream.read(buffer);
}
} catch (IOException e) {
e.printStackTrace();
}
BluetoothSocket 是蓝牙2.0的协议内容,ble 并不是很稳定,楼上说的就是解决方案。
蓝牙数据长度有限时20个字节,你可以先试试短数据量发送,如果可以的话那就是数据量的问题。
应该不是加密或者数据格式的问题。中文记得编码。
额,问题自己解决了,分享下经验吧,自己是集合蓝牙模块的相关资料蓝牙模块给上位机传输数据数据的转换格式公式,然后将输出流转为了float类型数据实时显示UI界面上,最终实现手机实时接收蓝牙模块数据