我有一个在树莓派上运行的python蓝牙服务器(使用PyBluez).我在服务器中使用的uuid是:
8f86d132-4ab8-4c15-b8df-0b70cf10ea56
我在Android应用中的蓝牙服务器上拨打device.fetchUuidsWithSdp()
.当它最终获取uuid时,它们已经以两个为一组的顺序反转了(似乎字节序已更改).
在广播接收器中:
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大小不一或字节序大有关系吗?
解决方法:
您是否有机会在Android 6.0.1版上遇到此问题?
遗憾的是,这似乎是android中的错误引起的.
https://code.google.com/p/android/issues/detail?id=197341