Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 蓝牙GATT-UUID_Java_Android_Bluetooth_Gatt - Fatal编程技术网

Java 蓝牙GATT-UUID

Java 蓝牙GATT-UUID,java,android,bluetooth,gatt,Java,Android,Bluetooth,Gatt,我正在尝试构建一个使用蓝牙的android应用程序。在教程中,他们使用128位UUID,但我只有16位UUID。 我必须使用服务UUID和蓝牙基础创建一个新的128位UUID 例如: 警报通知服务UUID(16位)=>0x1811 蓝牙基本UUID(128位)=>00000000-0000-1000-8000-00805F9B34FB 通过组合这两个UUID,我们可以接收 警报通知服务UUID(128位)=>00001811-0000-1000-8000-00805F9B34FB 有合适

我正在尝试构建一个使用蓝牙的android应用程序。在教程中,他们使用128位UUID,但我只有16位UUID。 我必须使用服务UUID和蓝牙基础创建一个新的128位UUID

例如:

  • 警报通知服务UUID(16位)=>0x1811
  • 蓝牙基本UUID(128位)=>00000000-0000-1000-8000-00805F9B34FB
通过组合这两个UUID,我们可以接收

  • 警报通知服务UUID(128位)=>00001811-0000-1000-8000-00805F9B34FB
有合适的方法吗?

我使用以下方法:

public class BLEUtils {

    public static final long BT_UUID_LOWER_BITS = 0x800000805F9B34FBl;
    public static final long BT_UUID_UPPER_BITS = 0x1000l;
    public static final long BT_CCCD_SHORT_UUID = 0x2902l;
    public static final UUID BT_CCCD_UUID = get16BitBTUUID(BT_CCCD_SHORT_UUID);

    public static UUID get16BitBTUUID(long uuid) {
        return new UUID(BT_UUID_UPPER_BITS + (uuid << 32), BT_UUID_LOWER_BITS);
    }
}

不过我没有测试。

嘿,谢谢你的回复!但是,如果我想从“BT_CCCD_UUID”中提取“BT_CCCD_SHORT_UUID”,我该如何实现呢?
public static long getShortUuid(UUID uuid) {
    long result = uuid.getMostSignificantBits();
    result = result - BT_UUID_UPPER_BITS;
    result = result >> 32;
    return result;
}