2017-03-04 10 views
0

Je développe une application Bluetooth, et j'ai besoin d'obtenir le nom des services fournis par un périphérique Bluetooth client particulier. J'utilise le code suivant pour obtenir les UUID.Comment obtenir le nom du service pour l'UUID correspondant en bluetooth?

Code Snippet:

if(BluetoothDevice.ACTION_UUID.equals(action)) 
{ 
BluetoothDevice device =  intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
Parcelable[] uuidExtra = intent.getParcelableArrayExtra(BluetoothDevice.EXTRA_UUID); 
for (int i = 0; i < uuidExtra.length; i++) { 
String abc=uuidExtra[i].toString()); 
} 
} 

Je reçois la valeur UUID comme par exemple "00001000-0000-1000-8000-00805F9B34FB" Mais j'ai besoin de son nom de service correspondant comme suit.

BrowseGroupDescriptorServiceClassID = 00001001-0000-1000-8000-00805F9B34FB PublicBrowseGroupServiceClass = 00001002-0000-1000-8000-00805F9B34FB

Répondre

0

On Bluetooth.com vous trouverez la liste des 16 bits UUID. Ils sont tous transformable à 128 bits que vous avez. Vous avez juste besoin de vérifier les spécifications du GATT. La seule chose qui reste est juste de mapper les noms avec les UUID, que vous devrez probablement écrire vous-même.

+0

donc vous voulez dire qu'il n'y a pas de syntaxe spécifique pour mapper les noms ?? @morynicz –

+0

Vous voulez dire méthode magique intégrée pour transformer les UUID en chaînes lisibles par l'homme? J'en doute. Mais vous pouvez vérifier dans la documentation android. – morynicz

+0

D'accord merci @morynicz –

0

Par ailleurs, il est différent de dev iOS, nous ne pouvons pas service_name ou charactistics_name par api publique android (sauf UUID) lorsqu'il est connecté, donc si nous voulons extpand nous-même service_name ou charactistics_name que l'extérieur blutetooth SIG defined Bluetooth à distance -Matériel. nous ne pouvons pas extraire directement la charactistics_name cible (par exemple charactistics.getUUIDName()) (toujours utiliser le mappage ajouter moi-même charactistics_uuid n'est pas interchangeable)