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