问题
Please don't mark this as duplicate. I have gone through all posts on this topic but couldn't solve my problem.
I have an application in J2ME that searches for bluetooth services with a particular UUID:
UUID[] uuidSet = { new UID("100000",true) };
int[] attrSet = {0x0100, 0x0003, 0x0004};
int transID = agent.searchServices(attrSet,uuidSet,remoteDevice,this);
I have a desktop application in VB.NET using 32feet.NET library that creates a new bluetooth service with a particular 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
Now as per rules, in order to function both GUID/UUID should match. However in .NET the GUID is represented as a hexadecimal string and in JAVA it's different. I googled a lot about how to sync the J2ME and .NET GUID/UUID but could not succeed.
回答1:
I've read the source for the j2me implementation of UUID, and it simply seems to indicate that you omit the braces and the hyphens i.e. use:
new UUID("7dc53df5703e49b38670b1c468f47f1f", false)
if you use the true parameter, it expects a short-form UUID (i.e. 8 characters long)
My original answer was based on the J2SE implementation, viz:
isn't the constructor for a UUID from a string:
UUID aUUID = UUID.fromString("")
where the string is:
7dc53df5-703e-49b3-8670-b1c468f47f1f
in the case of your UUID (i.e. remove the leading '{' and trailing '}' from the Guid string)
来源:https://stackoverflow.com/questions/6308783/problem-with-uuid-and-guid