其他分享
首页 > 其他分享> > android-从fetchUuidsWithSdp奇怪的UUID逆转

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

标签:endianness,uuid,bluetooth,python,android
来源: https://codeday.me/bug/20191027/1943870.html