永发信息网

android蓝牙如何发送十六进制数据

答案:3  悬赏:10  手机版
解决时间 2021-04-05 14:16
  • 提问者网友:感性作祟
  • 2021-04-04 18:52
String Fr="5A A5 04 01 00 05 AA";
String Ba="5A A5 04 02 00 06 AA";
String Le="5A A5 04 00 01 05 AA";
String Ri="5A A5 04 00 02 06 AA";
String St="5A A5 04 00 00 04 AA";

我现在要用蓝牙串口发十六进制数据给单片机,数据格式就是上面这样,求指点怎么发送上面这五条数据。
最佳答案
  • 五星知识达人网友:老鼠爱大米
  • 2019-05-12 14:03
发送十六进制数要转换成二进制才能发送。
16进制转为二进制,方法就是一分四,即一个十六进制数分成四个二进制数,用四位二进制按权相加,最后得到二进制,小数点依旧即可。
希望我能帮助你解疑释惑。
全部回答
  • 1楼网友:玩世
  • 2021-02-09 22:14
确切讲你说到的发送是service下的write特性. 1. 传入数据前都需要将字符串转换成byte类型数组,然后crc校对; 2. 校对无误后拼入; 3. 这是转换工具类: public static byte[] hexStringToBytes(String hexString) { if (hexString == null || hexString.equals("")) { return null; } hexString = hexString.toUpperCase(); int length = hexString.length() / 2; char[] hexChars = hexString.toCharArray(); byte[] d = new byte[length]; for (int i = 0; i < length; i++) { int pos = i * 2; d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1])); } return d; } 4. 结合serviceUUID, characterUUID,写入蓝牙设备即可.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯