import 'package:flutter/material.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:flutter_osm_plugin/flutter_osm_plugin.dart'; class DeviceAdvertizinScan extends StatefulWidget { const DeviceAdvertizinScan( {super.key, required this.deviceName, required this.deviceAddress, required this.remoteId}); final String deviceName; final String deviceAddress; final String remoteId; @override State createState() => _DeviceAdvertizinScanState(); } class _DeviceAdvertizinScanState extends State { List scanResults = []; TextEditingController tecTakingPoint = TextEditingController(); MapController mapController = MapController( initPosition: GeoPoint(latitude: 47.4358055, longitude: 8.4737324), ); @override void initState() { tecTakingPoint.text = '5'; FlutterBluePlus.startScan(); } @override void dispose() { FlutterBluePlus.stopScan(); print('Page disposed'); super.dispose(); } String value = 'Aucune valeur trouvée'; @override Widget build(BuildContext context) { FlutterBluePlus.onScanResults.listen((results) { setState(() { if (results.length > 0) value = results[0].advertisementData.toString(); }); }); return Scaffold( appBar: AppBar( title: Text("Valeur de la trame publicitaire", style: const TextStyle(color: Colors.white)), backgroundColor: Colors.blue, leading: IconButton( icon: const Icon(Icons.arrow_back, color: Colors.white), onPressed: () { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text( '(debug) Vous devez redémarrer l application et réaliser un nouveau scan pour voir les nouvelles valeurs (FlutterBluePlus.startScan())'), ), ); return; }, ), ), body: Column( children: [ Container( alignment: Alignment.topCenter, child: Column( children: [ Text(widget.deviceName), Text(widget.deviceAddress), Text(widget.remoteId), ], )), Container( margin: const EdgeInsets.all(10), child: //Text centré Center( child: Text( "La trame publicitaire est en cours de réception et actualisée en temps réel.", style: const TextStyle( color: Colors.green, ), textAlign: TextAlign.center), )), Container( margin: const EdgeInsets.all(10), child: CircularProgressIndicator()), Container( margin: const EdgeInsets.all(10), alignment: Alignment.center, child: Text(value, style: const TextStyle( color: Colors.black, fontWeight: FontWeight.bold))), ], ), ); } }