import 'dart:async';
import 'package:flutter/material.dart';
import 'package:sensors_plus/sensors_plus.dart'; // Import the sensors package
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primarySwatch: Colors.green,
),
debugShowCheckedModeBanner: false,
home: SensorExample(),
);
}
}
class SensorExample extends StatefulWidget {
@override
_SensorExampleStats createState() => _SensorExampleStats();
}
class _SensorExampleStats extends State<SensorExample> {
double _gyroX = 0.0;
double _gyroY = 0.0;
double _gyroZ = 0.0;
double _accelX = 0.0;
double _accelY = 0.0;
double _accelZ = 0.0;
double _barometerEvent = 0.0;
double _magnX = 0.0;
double _magnY = 0.0;
double _magnZ = 0.0;
@override
void initState() {
super.initState();
barometerEventStream().listen((event) {
setState(() {
_barometerEvent = event.pressure;
});
});
magnetometerEventStream().listen((event){
setState(() {
_magnX = event.x;
_magnY = event.y;
_magnZ = event.z;
});
});
gyroscopeEventStream().listen((GyroscopeEvent event) {
setState(() {
_gyroX = event.x;
_gyroY = event.y;
_gyroZ = event.z;
});
});
accelerometerEventStream().listen((event) {
setState(() {
_accelX = event.x;
_accelY = event.y;
_accelZ = event.z;
});
});
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Sensor Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Gyroscope Data:'),
Text('gryoX: ${_gyroX.toStringAsFixed(2)}'),
Text('gyroY: ${_gyroY.toStringAsFixed(2)}'),
Text('gryoZ: ${_gyroZ.toStringAsFixed(2)}'),
Text('Accelerometer Data:'),
Text('accelX: ${_accelX.toStringAsFixed((2))}'),
Text('accelY: ${_accelY.toStringAsFixed((2))}'),
Text('accelZ: ${_accelZ.toStringAsFixed((2))}'),
Text('Barometer Data:'),
Text('baroPressure: ${_barometerEvent.toStringAsFixed(2)}'),
Text('Magnetometer Data:'),
Text('magnX: ${_magnX.toStringAsFixed(2)}'),
Text('magnY: ${_magnY.toStringAsFixed(2)}'),
Text('magnZ: ${_magnZ.toStringAsFixed(2)}'),
],
),
),
);
}
}
flutter/dart에서 사용가능한 패키지 중 하나인 sensors_plus에 있는 가속도계, 기압계, 자이로스코프, 자력계를 화면에 표시하는 방법
'flutter' 카테고리의 다른 글
flutter 앱 개발 소스 분석-5 (0) | 2024.12.12 |
---|---|
flutter 앱 개발 소스 분석-3 (0) | 2024.12.12 |
flutter 앱 개발 소스 분석-2 (0) | 2024.12.11 |
flutter 앱 개발 소스 분석-1 (1) | 2024.12.11 |
windows에서 안드로이드 개발을 위해 사용했던 flutter 프로젝트가 macOS의 ios 에뮬레이터에서 동작을 안할 때 (0) | 2024.12.08 |