1
gaowenhao OP 我连接的方法大体如下:
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); BluetoothDevice device = adapter.getRemoteDevice("硬件的 mac 地址"); device.connectGatt(MainActivity.this, false, bluetoothGattCallbackOne); //这里传入 callback 函数, 在 callback 中获取所有的 Service 中的 Characteristic,然后对这些 characteristic 进行 setCharacteristicNotification 这样 硬件那边有消息后,就会回掉这个回掉方法中的 onCharacteristicChanged。 但是必须开启一下配套的 app 才能在收到硬件打过来的数据,希望有此方面经验的大神能指点一二。 |
2
gaowenhao OP 希望有经验的大佬看到后能给点指点。
|
3
chunchun1028 2018-07-05 09:31:22 +08:00
看过蓝牙协议,但做没有做过安卓蓝牙开发。
感觉应该先要确定配套 app 打开后干了什么,你既然已经能拿到双方交互的报文,分析这个应该没问题。 如果确定了是加密流程,再去分析协议也不迟。具体加密流程可以去找蓝牙官方协议的 Host 卷的安全管理协议那章 |
4
gaowenhao OP 诸位,这个问题我理清了。
这个密码校验确实存在,硬件貌似管他叫始能,说白了就是 android 这边写一个密码给硬件硬件通过这个密码鉴别是不是自己人,确实过是自己人后才给发送数据,就是这样希望能帮到后来的人。 另外,感谢 chunchun1028 的回复。 |