Я не розумію, що означає Bluetooth UUID. Чи позначають UUID протоколи (наприклад, RFCOMM )? Якщо так, то чому createRfcommSocketToServiceRecord()
методи вимагають UUID, коли вони вказують rfcomm прямо в своїх іменах? Чому зразок коду BluetoothChat має, здавалося б, довільний, жорстко закодований UUID?
Моє запитання виникає, тому що, відповідно до цього питання , я отримую виняток нульового вказівника, коли пристрої, що працюють на версії 4.0.4, намагаються підключитися (до зовнішнього, не андроїд-пристрою) за допомогою відображення. Однак рішення цього питання для мене не працює. UUID muuid = device.getUuids()[0].getUuid();
викликає виняток.
Редагувати : Я вирішив цю проблему шляхом жорсткого кодування UUID для служби послідовного порту відповідно до цієї відповіді (з використанням UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
).
Я ще більше спантеличений тим, чому мені потрібно надати UUID для створення незахищеного сокета rfcomm, використовуючи, createInsecureRfcommSocketToServiceRecord(),
але не використовуючи метод відображення.
Хтось може мене виправити?