main.dart 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import 'dart:typed_data';
  2. import 'package:flutter/material.dart';
  3. import 'dart:async';
  4. import 'package:flutter/services.dart';
  5. import 'package:flutter_bluetooth/flutter_bluetooth.dart';
  6. void main() => runApp(MyApp());
  7. class MyApp extends StatefulWidget {
  8. @override
  9. _MyAppState createState() => _MyAppState();
  10. }
  11. class _MyAppState extends State<MyApp> {
  12. late Stream<List<BluetoothDevice>> _deviceStream;
  13. @override
  14. void initState() {
  15. super.initState();
  16. _deviceStream = FlutterBluetooth.instance.startScan();
  17. }
  18. @override
  19. Widget build(BuildContext context) {
  20. return MaterialApp(
  21. home: Scaffold(
  22. appBar: AppBar(
  23. title: const Text('Plugin example app'),
  24. ),
  25. body: StreamBuilder<List<BluetoothDevice>>(builder: (context, result){
  26. return ListView.builder(
  27. itemCount: result.data?.length ?? 0,
  28. itemBuilder: (context, index){
  29. return ListTile(
  30. title: Text(result.data![index].name ?? ''),
  31. subtitle: Text('DeviceClass:${result.data![index].deviceClass ?? -1}'),
  32. onTap: () async {
  33. // var socket = await result.data[index].createSocket('00001101-0000-1000-8000-00805F9B34FB');
  34. // await socket.write(Uint8List.fromList([...'\x1BB'.codeUnits, 5, 9]));
  35. // await socket.close();
  36. },
  37. );
  38. },
  39. );
  40. }, stream: _deviceStream,),
  41. ),
  42. );
  43. }
  44. }