我有一个运行在树莓派上的python蓝牙服务器(使用PyBluez)。我在服务器中使用的uuid是:
8f86d132-4ab8-4c15-b8df-0b70cf10ea56
我在Android应用中的蓝牙服务器上呼叫device.fetchUuidsWithSdp()
。当它最终获取uuids时,它们已被反转为两个一组(似乎字节顺序已经改变)。
在广播接收器中:
Parcelable[] uuids = intent.getParcelableArrayExtra(BluetoothDevice.EXTRA_UUID);
if (uuids != null) {
if (uuids.length > 0) {
for (Parcelable uuid : uuids) {
Utilities.err(uuid.toString());
}
} else {
Utilities.err("no uuids");
}
}
例如:
8f86d132-4ab8-4c15-b8df-0b70cf10ea56
- > 56ea10cf-700b-dfb8-154c-b84a32d1868f
查看前两个字符8f
,它们是反转uuid的最后两个字符。
查看后两个字符86
,它们是反向uuid的第二个最后两个字符
造成这种情况的原因是什么?
这对UUID是小端还是大端有什么影响吗?
答案 0 :(得分:4)
你是否有任何机会在Android版本6.0.1上体验这个? 遗憾的是,android中似乎存在一个导致此问题的错误。 https://code.google.com/p/android/issues/detail?id=197341
答案 1 :(得分:0)
您的uuid为版本4,而您的变体为Endianess。这是正常的。取决于您的系统。如果您想要大的Endianess,请放8f86d132-4ab8-4c15-88df-0b70cf10ea56
我将b更改为8。