Πώς να ελέγξετε τη στάθμη και την κατάσταση της μπαταρίας στο Flutter

3
Πώς να ελέγξετε τη στάθμη και την κατάσταση της μπαταρίας στο Flutter

Όλοι γνωρίζουμε πόσο σημαντικό είναι να παρακολουθούμε τον κύκλο της μπαταρίας στα τηλέφωνά μας, επειδή είναι η μόνη πηγή λειτουργίας της συσκευής. Σε αυτό το σεμινάριο, θα εξετάσουμε τον τρόπο παρακολούθησης του επιπέδου και της κατάστασης της μπαταρίας σε εφαρμογές flutter χρησιμοποιώντας το μπαταρία_συν πακέτο.

Σχετικά με το battery_plus

Μια προσθήκη Flutter για τη λήψη διαφόρων πληροφοριών σχετικά με την μπαταρία από τη συσκευή στην οποία εκτελείται η εφαρμογή. Αυτή η προσθήκη είναι εφαρμόσιμη σε όλα τα είδη πλατφορμών, συμπεριλαμβανομένων των Android, iOS, macOS, web, Linux και Windows.

Προσθήκη εξάρτησης

Για να εγκαταστήσουμε το πακέτο στο έργο μας flutter, πρέπει να το προσθέσουμε στο pubspec.yaml και να εκτελέσουμε την εντολή pub get.

dependencies:
  battery_plus: ^2.0.2

Πακέτο εισαγωγής

Μπορούμε να χρησιμοποιήσουμε τις κλάσεις και τις μεθόδους εισάγοντας το πακέτο αφού εγκατασταθεί στο έργο μας flutter.

import 'package:battery_plus/battery_plus.dart';

Τώρα που το πακέτο έχει ρυθμιστεί, ας δούμε πώς να το χρησιμοποιήσετε

Δημιουργήστε μια παρουσία κατηγορίας μπαταρίας:

Η κλάση Battery είναι η βασική κλάση του πακέτου και περιέχει τις περισσότερες από τις μεθόδους, θα πρέπει να δημιουργήσουμε μια παρουσία της όπως φαίνεται παρακάτω.

//instantiate it
var _battery = Battery();

Λάβετε το επίπεδο μπαταρίας ή το ποσοστό:

Μπορούμε να έχουμε πρόσβαση στο επίπεδο της μπαταρίας χρησιμοποιώντας μπαταρία.μπαταρίαΕπίπεδο μετά τη δημιουργία ενός στιγμιότυπου της κατηγορίας μπαταριών.

// Get current battery level
print(await _battery.batteryLevel);

Λήψη κατάστασης μπαταρίας:

Υπάρχουν τέσσερις διαφορετικές καταστάσεις προσβάσιμες σε αυτό το πακέτο για να υποδείξουν την τρέχουσα κατάσταση της μπαταρίας. Είναι γεμάτα, φορτίζονται, αποφορτίζονται και άγνωστα.

  1. BatteryState.full: Η μπαταρία είναι εντελώς γεμάτη ενέργεια
  2. BatteryState.charging: Η μπαταρία αυτή τη στιγμή αποθηκεύει ενέργεια
  3. BatteryState.εκφόρτιση: Η μπαταρία αυτή τη στιγμή χάνει ενέργεια
  4. BatteryState.άγνωστο: Η κατάσταση της μπαταρίας είναι άγνωστη
  _battery.onBatteryStateChanged.listen((BatteryState state) {
    //battery state will be listen here
      setState(() {
        _batteryState = state;
      });
    })

Ελέγξτε τη λειτουργία εξοικονόμησης μπαταρίας:

Χρησιμοποιώντας την _battery.isInBatterySaveModeμπορούμε να δούμε αν η μπαταρία είναι σε λειτουργία αποθήκευσης ή όχι.

  final isInPowerSaveMode = await _battery.isInBatterySaveMode;

Τώρα που κατανοούμε καλύτερα το πακέτο μπαταρίας plus και τον τρόπο χρήσης του, μπορούμε να προχωρήσουμε στη βασική υλοποίηση. Δημιουργήστε ένα νέο έργο flutter και αντικαταστήστε τον κωδικό του boilerplate με τον ακόλουθο κωδικό. Εκτελέστε την εφαρμογή για να δείτε την έξοδο.

//Check the Battery Level and state using the batte_plus - FlutterAnt

import 'dart:async';
import 'package:battery_plus/battery_plus.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.cyan,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final Battery _battery = Battery();

  BatteryState? _batteryState;
  StreamSubscription<BatteryState>? _batteryStateSubscription;
  int _batteryLevel = 0;
  late Timer timer;
  bool? _isInPowerSaveMode;

  @override
  void initState() {
    super.initState();
    getBatteryState();
    checkBatterSaveMode();
    Timer.periodic(const Duration(seconds: 5), (timer) {
      getBatteryLevel();
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Battery Plus'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text('Battery State: $_batteryState', style: const TextStyle(fontSize: 18),),
            Text('Battery Level: $_batteryLevel %', style: const TextStyle(fontSize: 18)),
            Text("Is on low power mode: $_isInPowerSaveMode", style: const TextStyle(fontSize: 18) )
          ],
        ),
      ),
    );
  }

  @override
  void dispose() {
    super.dispose();
    if (_batteryStateSubscription != null) {
      _batteryStateSubscription!.cancel();
    }
  }

  void getBatteryState() {
    _batteryStateSubscription =
        _battery.onBatteryStateChanged.listen((BatteryState state) {
      setState(() {
        _batteryState = state;
      });
    });
  }

   getBatteryLevel() async {
    final level = await _battery.batteryLevel;
    setState(() {
      _batteryLevel = level;
    });
  }

  Future<void> checkBatterSaveMode() async {
    final isInPowerSaveMode = await _battery.isInBatterySaveMode;
     setState(() {
       _isInPowerSaveMode = isInPowerSaveMode;
     });
  }
}
//Check the Battery Level and state using the batte_plus - FlutterAnt
//www.flutterAnt.com

Παραγωγή:

Η έξοδος φαίνεται στην παρακάτω εικόνα μετά την επιτυχή εκτέλεση της εφαρμογής.

Πτερύμισμα ελέγχου επιπέδου μπαταρίας

Για περισσότερες πληροφορίες σχετικά με το batter_plus Κάντε κλικ ΕΔΩ

Ευχαριστώ για την ανάγνωση… 🙂

Schreibe einen Kommentar