如何在android中从字符串创建UUID

 海纳百川2602902033 发布于 2023-02-13 14:31

在我的应用程序中,我扫描低功耗蓝牙的特定服务uuid 2415.要将字符串2415转换为uuid我正在使用UUID serviceUUID = UUID.fromString("2415");但在此行出现异常IllegalArgumentException:无效的UUID 2415.

请在这方面帮助我,在这方面我将非常感谢.提前致谢.

5 个回答
  • 可能导致许多人在这里的混乱是你可以使用短代码UUID来引用其他平台上的蓝牙服务和特性 - 例如在带有CBUUID的 iOS上.但是,在Android上,您必须提供RFC4122中指定的完整的128位长度UUID .

    修复(正如@Michael指出的那样)是将16位或32位短UUID添加到基本蓝牙UUID.您可以使用这些功能使这更容易一些.

    public static final String baseBluetoothUuidPostfix = "0000-1000-8000-00805F9B34FB";
    
    public static UUID uuidFromShortCode16(String shortCode16) {
        return UUID.fromString("0000" + shortCode16 + "-" + baseBluetoothUuidPostfix);
    }
    
    public static UUID uuidFromShortCode32(String shortCode32) {
        return UUID.fromString(shortCode32 + "-" + baseBluetoothUuidPostfix);
    }
    

    例如:

    UUID uuid = uuidFromShortCode16("FFF0");
    

    这将创建一个UUID对象"0000FFF0-0000-1000-8000-00805F9B34FB".

    2023-02-13 14:32 回答
  • @Michael在评论中提供了接受的答案:

    您是否尝试将短UUID与蓝牙基础UUID结合使用?即"00002415-0000-1000-8000-00805F9B34FB"?(假设你的意思是2415十六进制)?

    我正在将该评论转换为答案,因为我在第一次阅读这个帖子时错过了它.

    2023-02-13 14:32 回答
  • 您可以使用

    String str = "1234";
    UUID uuid = UUID.nameUUIDFromBytes(str.getBytes());
    
    System.out.print(uuid.toString());
    

    2023-02-13 14:32 回答
  • 希望这会有所帮助
    异常是由于UUID.fromString()方法中的参数无效.

    UUID.fromString()方法期望"302a5a70-c085-4946-b702-fc1deb1046af"字符串的类型作为其参数并返回UUID类的实例.
    要将短手16位uuid转换为128位uuid,您可以使用此模板"0000XXXX-0000-1000-8000-00805F9B34FB".这里XXXX用你的16位uuid 替换.

    例如:
    在您的情况下使用128位UUID "00002415-0000-1000-8000-00805F9B34FB".
    要从字符串中获取UUID,您应该使用这样的代码

    UUID uuid = UUID.fromString("00002415-0000-1000-8000-00805F9B34FB");
    https://newcircle.com/s/post/1786/2016/01/04/bluetooth-uuids-and-interoperable-advertisements

    2023-02-13 14:33 回答
  • 使用类UUID

    像这样的例子:

     UUID.randomUUID().toString()
    

    2023-02-13 14:35 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有