Android: как работают Bluetooth UUID?

Я не понимаю, что означает блютуз UUID. Обозначают ли UUID протоколы (например,RFCOMM)? Если так, то почемуcreateRfcommSocketToServiceRecord() методы требуют UUID, когда они указывают rfcomm прямо в своих именах? Почему образец кода BluetoothChat имеет, по-видимому, произвольный UUID в жестком коде?

Мой вопрос возникает потому, что согласноэтот вопросЯ получаю исключение нулевого указателя, когда устройства под управлением 4.0.4 пытаются подключиться (к внешнему устройству, не являющемуся Android) с помощью отражения. Однако решение этого вопроса не работает для меня.UUID muuid = device.getUuids()[0].getUuid(); выдвигает исключение

редактировать: Я решил эту проблему путем жесткого кодирования UUID для службы последовательного порта в соответствии сэтот ответ (с помощьюUUID.fromString("00001101-0000-1000-8000-00805f9b34fb");).

Я также озадачен, почему мне нужно предоставить UUID для создания незащищенного сокета rfcomm, используяcreateInsecureRfcommSocketToServiceRecord(), но не используя метод отражения.

Кто-нибудь может выправить меня?

Ответы на вопрос(5)

Ваш ответ на вопрос