/********************************** * main.dart * * demo how to access * accelerometer values from flutter * ***********************************/ import 'dart:async'; import 'dart:typed_data'; import 'package:flutter/material.dart'; import 'package:sensors_plus/sensors_plus.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, home: AccelerometerExample()); }} class AccelerometerExample extends StatefulWidget { const AccelerometerExample({super.key}); @override State createState() => _AccelerometerExampleState(); } class _AccelerometerExampleState extends State { AccelerometerEvent? accel; late StreamSubscription subs; late Timer timer; @override void dispose(){ super.dispose(); subs.cancel(); timer.cancel();} @override void initState() { super.initState(); subs = accelerometerEventStream().listen((AccelerometerEvent event){ setState((){ accel = event; });}); timer = Timer.periodic(const Duration(milliseconds: 500), (_) { setState(() { refresh();});});} void refresh(){ // send to bluetooth data int x = accel!.x.toInt(); int y = accel!.y.toInt(); if (x > 2) print('left'); if (x < -2) print('right'); if (y < -2) print('up'); if (y > 2) print('down');} @override Widget build(BuildContext context) { return Scaffold(appBar: AppBar(title: Text('Accelerometer Example')), body: Center(child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text('Accelerometer Data:',style: TextStyle(fontSize: 20)), SizedBox(height: 10), Text('X: ${accel!.x.toInt()}, ' 'Y: ${accel!.y.toInt()}',) ])));}}