从/向蓝牙设备读取/写入数据

时间:2017-03-11 08:14:01

标签: android bluetooth

我有蓝牙设备。它适用于自己的软件,但问题是原始软件需要太多权限,对我来说似乎非常不安全。 我可以在没有任何软件的情况下将设备与手机配对。我的目标是从这个设备获取命令并在我的Android设备中执行自定义任务。

将设备和手机配对后,我可以建立如下的安全连接:

bt = getPairedBtDevice();
socket = bt.createRfcommSocketToServiceRecord(bt.getUuids()[0].getUuid());
socket.connect();
inputStream = socket.getInputStream();
outputStream = socket.getOutputStream();

我也可以写这样的数据:

outputStream.write(EncodeHelper.hexToBytes(hex));

我也可以在Handler循环中读取数据:

//loop
if (inputStream.available() > 0) {
   int size = inputStream.available();
   byte[] bytes = new byte[size];
   inputStream.read(bytes, 0, size);
   log(EncodeHelper.bytesToHex(bytes));
}

问题是:我认为这是为了阅读数据,而不是为了事件。

我的问题是:

  1. 有可能吗?

  2. 这是一个合理的解决方案吗?

  3. 还有其他方法吗?像BluetoothDataExchangeListener?

  4. 我应该考虑像CRC这样的控制标题吗?

0 个答案:

没有答案