Android – Получить UUID Bluetooth для этого устройства

Я бросил Stack и Интернет для простого решения получить UUID устройства, которое я сейчас использую. Я наткнулся на такие должности, но никто из них, казалось, не помог мне.

Документ рассказывает мне об этой функции getUuids() но, проходя через doc для Android Bluetooth, я получаю BluetoothAdapter, но для выполнения этой функции мне требуется BluetoothDevice .

Поэтому мне нужно знать следующее:

1) Действительно ли функция возвращает UUID устройства? Поскольку имя говорит о множественном числе (getUuid s )

2) Как получить экземпляр этого BluetoothDevice ?

Благодаря!

Используя отражение, вы можете вызвать скрытый метод getUuids() в 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()); } 

Это результат на 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 

Где, например, 0000111f-0000-1000-8000-00805f9b34fb для HandsfreeAudioGatewayServiceClass и 00001105-0000-1000-8000-00805f9b34fb для OBEXObjectPushServiceClass . Фактическая доступность этого метода может зависеть от версии устройства и прошивки.