Tôi không hiểu UUID bluetooth biểu thị điều gì. Các UUID có biểu thị giao thức (ví dụ: RFCOMM ) không? Nếu vậy, tại sao các createRfcommSocketToServiceRecord()
phương thức yêu cầu UUID, khi chúng chỉ định rfcomm ngay trong tên của chúng? Tại sao mã mẫu BluetoothChat có UUID mã cứng, có vẻ tùy ý?
Câu hỏi của tôi đặt ra bởi vì, theo câu hỏi này , tôi nhận được một ngoại lệ con trỏ rỗng khi các thiết bị chạy 4.0.4 cố gắng kết nối (với thiết bị bên ngoài, không phải Android) bằng cách sử dụng phản chiếu. Tuy nhiên, giải pháp cho câu hỏi đó không phù hợp với tôi. UUID muuid = device.getUuids()[0].getUuid();
nêu ra một ngoại lệ.
Chỉnh sửa : Tôi đã giải quyết vấn đề đó bằng cách mã hóa cứng UUID cho dịch vụ cổng nối tiếp theo câu trả lời này (sử dụng UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
).
Tôi còn phân vân thêm tại sao tôi cần cung cấp UUID để tạo một ổ cắm rfcomm không an toàn bằng cách sử dụng createInsecureRfcommSocketToServiceRecord(),
nhưng không sử dụng phương pháp phản chiếu.
Bất cứ ai có thể thẳng thắn cho tôi?