2013-10-28 17 views
14

Tôi đã phát triển Stack và Internet cho một giải pháp đơn giản để có được UUID của thiết bị tôi hiện đang sử dụng. Tôi tình cờ gặp posts like this nhưng không ai trong số họ dường như giúp tôi.Android - Nhận Bluetooth UUID cho thiết bị này

Các doc nói với tôi about thisgetUuids() chức năng nhưng khi đi qua doc cho Android Bluetooth tôi sẽ chỉ có một BluetoothAdapter nhưng tôi cần một BluetoothDevice để thực hiện chức năng này.

Vì vậy, tôi cần phải biết những điều sau:

1) Sản phẩm chức năng quay trở lại thực sự là thiết bị UUID? Bởi vì tên nói số nhiều (getUuid s)

2) Làm thế nào để có được một thể hiện của BluetoothDevice này?

Cảm ơn!

+0

, làm sao bạn biết UUID là dành cho thiết bị bluetooth của bạn @Ron? – gumuruh

Trả lời

15

Sử dụng phản chiếu, bạn có thể gọi phương thức ẩn getUuids() trên BluetoothAdater:

BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); 

Method getUuidsMethod = BluetoothAdapter.class.getDeclaredMethod("getUuids", null); 

ParcelUuid[] uuids = (ParcelUuid[]) getUuidsMethod.invoke(adapter, null); 

for (ParcelUuid uuid: uuids) { 
    Log.d(TAG, "UUID: " + uuid.getUuid().toString()); 
} 

Đây là kết quả trên Nexus S:

UUID: 00001000-0000-1000-8000-00805f9b34fb 
UUID: 00001001-0000-1000-8000-00805f9b34fb 
UUID: 00001200-0000-1000-8000-00805f9b34fb 
UUID: 0000110a-0000-1000-8000-00805f9b34fb 
UUID: 0000110c-0000-1000-8000-00805f9b34fb 
UUID: 00001112-0000-1000-8000-00805f9b34fb 
UUID: 00001105-0000-1000-8000-00805f9b34fb 
UUID: 0000111f-0000-1000-8000-00805f9b34fb 
UUID: 0000112f-0000-1000-8000-00805f9b34fb 
UUID: 00001116-0000-1000-8000-00805f9b34fb 

nơi, ví dụ, 0000111f-0000-1000-8000-00805f9b34fb là dành cho HandsfreeAudioGatewayServiceClass00001105-0000-1000-8000-00805f9b34fb là dành cho OBEXObjectPushServiceClass. Tính khả dụng thực tế của phương pháp này có thể phụ thuộc vào phiên bản phần mềm và thiết bị. Tuy nhiên,

+0

Tôi đang sử dụng SDK16 và nó không hoạt động đối với tôi. 'Uuids' là' null'. Hơn nữa tôi muốn có chỉ uuid Bluetooth của tôi. Bạn có biết làm thế nào để có được điều này? – Ron

+0

Có một uuid cho mỗi dịch vụ Bluetooth được thiết bị tiếp xúc; đó là lý do tại sao bạn thấy nhiều uuids cho điện thoại thông minh. Tôi đã thực hiện các thử nghiệm bằng SDK trên Nexus S với Android 4.1.2 và Galaxy Nexus với Android 4.3. Bạn đã sử dụng thiết bị nào? –

+0

Galaxy S2 ... tôi có cần Bluetooth để truy xuất uuid của mình không? – Ron

Các vấn đề liên quan