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(),
но не используя метод отражения.
Кто-нибудь может выправить меня?