Flutter pour les appareils Bluetooth. Comment connecter vos appareils BLE au… par Md Sadab Wasim Communauté Flutter Moyen

Telechargé par julioraharivelo
Flutter pour les appareils Bluetooth
Md Sadab Wasim Suivre
30 déc.2019 · 3 min de lecture
Comment connecter vos appareils BLE à l'application Flutter et faire quelque chose.
Jusqu'à présent, j'ai vu de nombreux articles sur le flutter avec les appareils BLE, mais
pour être honnête, la plupart d'entre eux ne vous parleront que de la pointe de l'iceberg.
Mais, maintenant, je suis ici pour partager mes expériences avec vous sur la façon de se
connecter et de jouer avec l'appareil BLE.
Photo de Luke Chesser sur Unsplash
Choses que nous allons couvrir dans cet article:
1. Comment connecter votre appareil BLE à une application Flutter.
2. Comment découvrir les services fournis par votre appareil BLE.
3. Comment obtenir des données à partir de ces services / caractéristiques.
4. Et enfin comment envoyer des commandes à l'appareil BLE.
Première phase
Découvrez et connectez-vous à l'appareil
Tout d'abord, nous allons utiliser le package flutter_blue pour tous les types de
communication avec le périphérique BLE.
flutter_blue: ^ 0,6,3 + 1
Nous l'initialiserons dans la méthode initstate ()
import 'package: flutter_blue / flutter_blue.dart';
// Nous rendons ces trois choses globales afin que nous-
// pouvons vérifier l'état et l'appareil plus tard dans cette classe
Périphérique BluetoothDevice;
État BluetoothState;
BluetoothDeviceState deviceState;
/// Initialisation et écoute de l'état de l'appareil
@override
void initState () {
super.initState ();
// rifie ltat actuel du bluetooth
FlutterBlue.instance.state.listen (tat) {
if tat == BluetoothState.off) {
// Alerte l'utilisateur pour activer le Bluetooth.
} else if (état == BluetoothState.on) {
// si le bluetooth est activé, continuez.
// Assurez-vous que le GPS de l'appareil de l'utilisateur est acti.
scanForDevices ();
}
});
}
Rechercher un appareil et arrêter les méthodes de scan
///// **** Analyser et arrêter les thodes Bluetooth ***** /////
void scanForDevices () async {
scanSubscription = bluetoothInstance.scan (). listen ((scanResult)
async {
if (scanResult.device.name == "your_device_name") {
print ("périphérique trouvé");
// Attribution d'un riphérique Bluetooth
périphérique = scanResult.device;
// Après cela, nous arrêtons la recherche de périphérique
stopScanning ();
}
});
}
void stopScanning () {
bluetoothInstance.stopScan ();
scanSubscription.cancel ();
}
Seconde phase
Découvrez les services fournis par l'appareil
Connectez-vous à l'appareil
///// ******* Méthodes de manipulation des appareils Bluetooth
******** //////
connectToDevice () async {
// flutter_blue nous facilite la vie
attendre device.connect ();
// Après la connexion, commencez à couvrir les services
DiscoverServices ();
}
Découvrez les services et obtenez la bonne caractéristique
// AJOUTEZ VOS PROPRES SERVICES ET CHAR UUID, CHAQUE APPAREIL A UN
UUID DIFFÉRENT
// dispositif Caractéristiques exclusives du service ISSC
static const ISSC_PROPRIETARY_SERVICE_UUID = "49535343 - *****";
// caractère de périphérique pour les caracristiques ISSC
static const UUIDSTR_ISSC_TRANS_TX = "49535343-4554 - *****";
static const UUIDSTR_ISSC_TRANS_RX = "49535343-8841 - ****";
// Cette caractéristique pour envoyer la commande à l'appareil
BluetoothCaractéristique c;
// Ce flux sert à prendre la valeur de la caractéristique
// à lire les données fournies par l'appareil
Stream <List <int>> listStream;
DiscoverServices () async {
List <BluetoothService> services = attendre device.discoverServices
();
// rification de chaque service fourni par l'appareil
services.forEach ((service) {
if (service.uuid.toString () == ISSC_PROPRIETARY_SERVICE_UUID) {
service.characteristics.forEach ((caractéristique) {
if (caracristique.uuid.toString () == UUIDSTR_ISSC_TRANS_RX) {
// Mise à jour de la caracristique pour effectuer l'opération
dcriture.
c = caracristique;
} else if (caractéristique.uuid.toString () == UUIDSTR_ISSC_TRANS_TX)
{
// Mise à jour du flux pour effectuer l'opération de lecture.
listStream = caracristique.valeur;
caractéristique.setNotifyValue (! caractéristique.isNotifying);
}
});
}
});
}
Troisième phase
Obtenir les données des services / caractéristiques
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !