我有蓝牙设备。它适用于自己的软件,但问题是原始软件需要太多权限,对我来说似乎非常不安全。 我可以在没有任何软件的情况下将设备与手机配对。我的目标是从这个设备获取命令并在我的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));
}
问题是:我认为这是为了阅读数据,而不是为了事件。
我的问题是:
有可能吗?
这是一个合理的解决方案吗?
还有其他方法吗?像BluetoothDataExchangeListener?
我应该考虑像CRC这样的控制标题吗?