Я не понимаю, что означает UUID Bluetooth. Обозначают ли UUID протоколы (например, RFCOMM)? Если да, почему методы createRfcommSocketToServiceRecord()
требуют UUID, когда они указывают rfcomm прямо в их именах? Почему код кода BluetoothChat имеет кажущийся произвольный, жестко запрограммированный UUID?
Мой вопрос возникает, потому что, по этому вопросу, я получаю исключение нулевого указателя, когда устройства, работающие под управлением 4.0.4, пытаются подключиться (к внешнему, -android device) с использованием отражения. Однако решение этого вопроса для меня не работает. UUID muuid = device.getUuids()[0].getUuid();
вызывает исключение.
Изменить. Я решил эту проблему путем жесткого кодирования UUID для службы Serial Port в соответствии с этим ответом (используя UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
).
Я также озадачен тем, почему мне нужно предоставить UUID для создания незащищенного сокета rfcomm, используя createInsecureRfcommSocketToServiceRecord(),
, но не используя метод отражения.
Кто-нибудь может меня выправить?