Проблема с UUID и GUID - PullRequest
       23

Проблема с UUID и GUID

1 голос
/ 10 июня 2011

Пожалуйста, не отмечайте это как дубликат. Я просмотрел все сообщения на эту тему, но не смог решить свою проблему.

У меня есть приложение в J2ME, которое ищет службы Bluetooth с определенным UUID:

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

У меня есть настольное приложение в VB.NET, использующее библиотеку 32feet.NET, которая создает новую службу Bluetooth с определенным 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 он другой. Я много гуглил о том, как синхронизировать J2ME и .NET GUID / UUID, но не смог.

1 Ответ

1 голос
/ 10 июня 2011

Я прочитал источник для реализации UUID в j2me, и он, кажется, просто указывает, что вы опускаете фигурные скобки и дефисы, т. Е. Используйте:

new UUID("7dc53df5703e49b38670b1c468f47f1f", false)

если вы используете параметр true, он ожидает краткий UUID (т. Е. 8 символов)

Мой оригинальный ответ был основан на реализации J2SE, а именно:

не является конструктором для UUID из строки:

UUID aUUID = UUID.fromString ("")

где строка:

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

в случае вашего UUID (т.е. удалить начальный '{' и завершающий '}' из строки Guid)

...