Connaître les profils Android Bluetooth LE GATT
J'ai mis en place le Android LE bluetooth exemple de trouver un moniteur de fréquence cardiaque et qu'il connecte. Cependant, cet exemple a une classe qui définit le GATT de profil comme ceci:
private static HashMap<String, String> attributes = new HashMap();
public static String HEART_RATE_MEASUREMENT = "00002a37-0000-1000-8000-00805f9b34fb";
public static String CLIENT_CHARACTERISTIC_CONFIG = "00002902-0000-1000-8000-00805f9b34fb";
static {
//Sample Services.
attributes.put("0000180d-0000-1000-8000-00805f9b34fb", "Heart Rate Service");
attributes.put("0000180a-0000-1000-8000-00805f9b34fb", "Device Information Service");
//Sample Characteristics.
attributes.put(HEART_RATE_MEASUREMENT, "Heart Rate Measurement");
attributes.put("00002a29-0000-1000-8000-00805f9b34fb", "Manufacturer Name String");
}
public static String lookup(String uuid, String defaultName) {
String name = attributes.get(uuid);
return name == null ? defaultName : name;
}
Maintenant, ce que je suis désireux de le faire est de faire en sorte que ce programme trouve tout appareil avec bluetooth le, mais je n'ai aucune idée de comment Google ont obtenu de l'information pour la mesure de la fréquence cardiaque du client caractéristique de config.
Est-il un site web quelque part avec toutes ces informations que je ne suis pas à trouver?
source d'informationauteur N0xus | 2013-09-09
Vous devez vous connecter pour publier un commentaire.
Le Bluetooth SIG tient à jour une liste de "Assigned Numbers", qui regroupe les Uuid trouvé dans l'exemple d'application:
https://www.bluetooth.org/en-us/specification/assigned-numbers
Bien que les Uuid sont longueur de 128 bits, les numéros affectés pour Bluetooth LE sont répertoriés comme 16 bits hex valeur en raison de la baisse de 96 bits sont uniformes à l'échelle d'une classe d'attributs.
Par exemple, tous les BLE caractéristique Uuid sont de la forme:
Le numéro attribué pour la Mesure de la fréquence Cardiaque caractéristique de l'UUID est répertorié comme
0x2A37
qui est la façon dont le développeur de l'exemple de code pourrait arriver à:En plus de @Godfrey Duc de réponse, voici une méthode que j'utilise pour extraire les bits significatifs de l'UUID:
Exemple d'utilisation:
Voici la page du gatt de rappel: https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html
Vous devez utiliser le BluetoothGatt.discoverServices();
et puis dans le rappel onServicesDiscovered(...) je pense que vous devez useBluetoothGatt.getServices();