android-从fetchUuidsWithSdp奇怪的UUID逆转

我有一个在树莓派上运行的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

上一篇:Android BluetoothGatt无法接收特征通知BluetoothGatt#writeDescriptor(desc)返回false


下一篇:SystemUI修改蓝牙状态以及图标,用系统蓝牙图标