2013-10-28 22 views
14

私は現在、使用しているデバイスのUUIDを取得する簡単な解決策のためにスタックとインターネットをブラウズしていました。私はposts like thisを見つけたが、誰も私を助けてくれなかった。Android - このデバイスのBluetooth UUIDを取得

のdocは私にabout thisgetUuids()機能を伝えますが、Android Bluetoothのためにドキュメントを通過するとき、私はBluetoothAdapterを持つ終わるが、私はこの機能を実行するBluetoothDeviceを必要としています。

だから私は次のことを知っておく必要があります。

1)は、実際にデバイスUUIDを返す関数ですか?名前が複数であるので(getUuid s

2)どうすればこのインスタンスを得ることができますか?BluetoothDevice

ありがとうございます!

+0

とにかく、あなたのBluetoothデバイスのUUIDが@Ronであることをどのように知ることができますか? – gumuruh

答えて

15

あなたはBluetoothAdaterに隠された方法getUuids()を呼び出すことができますリフレクションを使用:

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()); 
} 

これは、ネクサスSの結果である:例えば、0000111f-0000-1000-8000-00805f9b34fbHandsfreeAudioGatewayServiceClassのためである、

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 

00001105-0000-1000-8000-00805f9b34fbOBEXObjectPushServiceClassです。この方法の実際の利用可能性は、デバイスとファームウェアのバージョンによって異なる場合があります。

+0

私はSDK16を使用していますが、私のためには機能しません。 uuidsはヌルです。さらに私は自分のBluetooth Uuidを持っていたいと思う。あなたはこれを手に入れる方法を知っていますか? – Ron

+0

デバイスによって公開される各Bluetoothサービスにはuuidがあります。そのため、スマートフォン用に複数のUIDが表示されます。 Android 4.1.2搭載のNexus SのSDKとAndroid 4.3搭載のGalaxy Nexusを使用してテストを実施しました。どのデバイスを使用しましたか? –

+0

Galaxy S2 ...私はuuidを取得するためにBluetoothをアクティブにする必要がありますか? – Ron

関連する問題