flutter_magnetometer 0.1.1 copy "flutter_magnetometer: ^0.1.1" to clipboard
flutter_magnetometer: ^0.1.1 copied to clipboard

A Flutter plugin for getting the magnetometer data of your device along the x,y and z coordinates

example/lib/main.dart

import 'dart:async';
import 'dart:math' as math;

import 'package:flutter/material.dart';
import 'package:flutter_magnetometer/flutter_magnetometer.dart';

void main() => runApp(MagnetometerExampleApp());

class MagnetometerExampleApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.red,
      ),
      home: CompassPage(),
    );
  }
}

class CompassPage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _CompassPageState();
}

class _CompassPageState extends State<CompassPage> {
  MagnetometerData _magnetometerData = MagnetometerData(0.0, 0.0, 0.0);

  StreamSubscription _magnetometerListener;

  /// assign listener and start setting real data over [_magnetometerData]
  @override
  void initState() {
    super.initState();
    _magnetometerListener = FlutterMagnetometer.events
        .listen((MagnetometerData data) => setState(() => _magnetometerData = data));
  }

  @override
  void dispose() {
    _magnetometerListener.cancel();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    final double atan2 = math.atan2(_magnetometerData.y, _magnetometerData.x);
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Magnetometer Example'),
      ),
      body: ListView(
        semanticChildCount: 3,
        children: <Widget>[
          Center(
            child: Padding(
              padding: EdgeInsets.all(16.0),
              child: Transform.rotate(
                // calculate the direction we're heading in degrees, then convert to radian
                angle: math.pi / 2 - atan2,
                child: Image.asset('assets/compass.webp'),
              ),
            ),
          ),
          Text('Raw microtesla values: \n: ${_magnetometerData.toStringDeep()}'),
          Text('atan2 result:\n $atan2'),
        ],
      ),
    );
  }
}
2
likes
40
pub points
0%
popularity

Publisher

unverified uploader

A Flutter plugin for getting the magnetometer data of your device along the x,y and z coordinates

Homepage

License

BSD-3-Clause (LICENSE)

Dependencies

equatable, flutter

More

Packages that depend on flutter_magnetometer