Comment envoyer des données via un lien Bluetooth Low Energy (BLE)?
Je suis capable de découvrir, se connecter à des périphériques bluetooth.
Code Source---
Se connecter via bluetooth à un Appareil Distant:
//Get the device by its serial number
bdDevice = mBluetoothAdapter.getRemoteDevice(blackBox);
//for ble connection
bdDevice.connectGatt(getApplicationContext(), true, mGattCallback);
Gatt de Rappel pour Statut:
private BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
//Connection established
if (status == BluetoothGatt.GATT_SUCCESS
&& newState == BluetoothProfile.STATE_CONNECTED) {
//Discover services
gatt.discoverServices();
} else if (status == BluetoothGatt.GATT_SUCCESS
&& newState == BluetoothProfile.STATE_DISCONNECTED) {
//Handle a disconnect event
}
}
@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
//Now we can start reading/writing characteristics
}
};
Maintenant, je veux envoyer des commandes à Distance BLE appareil, mais ne sais pas comment faire.
Une fois que la commande est envoyée à la BLE de l'appareil, le BLE dispositif répondra par la radiodiffusion
données de mon application peut recevoir.
source d'informationauteur My God
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de rompre ce processus en quelques étapes, lorsque vous vous connectez à un BLE de l'appareil et découvrez les Services:
Affichage de l'
gattServices
dansonServicesDiscovered
pour votrecallback
Pour vérifier si vous pouvez écrire une caractéristique ou non
vérifier BluetoothGattCharacteristic PROPRIÉTÉS -je ne savais pas que la nécessité de permettre à la PROPERTY_WRITE sur la BLE de matériel et qui a perdu beaucoup de temps.
Lorsque vous écrivez une caractéristique, le matériel d'accomplir une quelconque action pour indiquer explicitement l'opération (dans mon cas, j'ai été éclairage led)
Supposons que
mWriteCharacteristic
est un BluetoothGattCharacteristicLa partie où pour vérifier le BIEN doit être comme:
Et, à écrire votre caractéristique:
Ceux sont les parties utiles du code que vous avez besoin pour mettre en œuvre avec précision.
Reportez-vous ce projet github pour une mise en œuvre avec seulement une base de démonstration.
Un noob-friendly guide pour faire Android interagir avec une LED-lampe.
L'étape 1.
Obtenez un outil pour analyser votre BLE de l'appareil. J'ai utilisé "Bluetooth LE Laboratoire" pour Win10, mais celui-ci va faire ça bien: https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner
L'étape 2.
Analyser le comportement de la BLE appareil en entrant les données, je vous recommande d'entrer des valeurs hexadécimales.
L'étape 3.
Obtenez de l'échantillon de l'Android docs. https://github.com/googlesamples/android-BluetoothLeGatt
L'étape 4.
Modifier l'Uuid de vous trouver dans
SampleGattAttributes
Ma config:
L'étape 5.
Dans BluetoothService.java modifier
onServicesDiscovered
:Convertir les octets de la Chaîne à l'aide de cette fonction:
PS: Le code ci-dessus est loin de la production, mais j'espère que cela aide ceux qui sont nouveaux à la BLE.