UUID 和 GUID 的问题

Posted

技术标签:

【中文标题】UUID 和 GUID 的问题【英文标题】:Problem with UUID and GUID 【发布时间】:2011-06-10 15:44:17 【问题描述】:

请不要将此标记为重复。我浏览了有关此主题的所有帖子,但无法解决我的问题。

我在 J2ME 中有一个使用特定 UUID 搜索蓝牙服务的应用程序:

UUID[] uuidSet =  new UID("100000",true) ;
int[] attrSet = 0x0100, 0x0003, 0x0004;
int transID = agent.searchServices(attrSet,uuidSet,remoteDevice,this);

我在 VB.NET 中有一个桌面应用程序,它使用 32feet.NET 库创建具有特定 GUID 的新蓝牙服务。

Sub startBluetoothListener()
    Dim lsnr As New BluetoothListener(MyConsts.MyServiceUuid, record)
    lsnr.Start()
    Dim conn As New BluetoothClient
    Dim peerStream As Stream            
End Sub

Class MyConsts
Public Shared ReadOnly MyServiceUuid As Guid _
  = New Guid("7dc53df5-703e-49b3-8670-b1c468f47f1f")
End Class

现在按照规则,为了正常工作,GUID/UUID 都应该匹配。但是在 .NET 中,GUID 表示为十六进制字符串,而在 JAVA 中则不同。我在 Google 上搜索了很多关于如何同步 J2ME 和 .NET GUID/UUID 但未能成功。

【问题讨论】:

【参考方案1】:

我已经阅读了 UUID 的 j2me 实现的源代码,它似乎只是表明您省略了大括号和连字符,即使用:

new UUID("7dc53df5703e49b38670b1c468f47f1f", false)

如果您使用 true 参数,它需要一个短格式 UUID(即 8 个字符长)

我最初的答案是基于 J2SE 实现,即:

不是来自字符串的 UUID 的构造函数:

UUID aUUID = UUID.fromString("")

字符串在哪里:

7dc53df5-703e-49b3-8670-b1c468f47f1f

对于您的 UUID(即从 Guid 字符串中删除前导 '' 和尾随 '')

【讨论】:

感谢您的回复。我认为你正在谈论的 UUID 来自 J2SE 中的 java.util 。我使用的是 J2ME。 啊,好吧,我对 j2me UUID 类并不完全熟悉 - 基于 jcs.mobile-utopia.com/jcs/7627_UUID.java 的源代码,您应该省略连字符

以上是关于UUID 和 GUID 的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何测试有效的 UUID/GUID?

Excel生成guid、uuid

如何在 R 中生成 GUID?

如何从 Keycloak 获取用户 ID 和用户 UUID/GUID?

UUID 和 GUID 的区别(转)

如何在 Python 中创建 GUID/UUID