flutter如何获取设备电量

在Flutter中如何获取当前设备的电池电量?有没有现成的插件可以使用?具体实现步骤是怎样的?需要哪些权限或特殊配置吗?

2 回复

在Flutter中,使用battery_plus插件获取设备电量。首先添加依赖,然后调用Battery().batteryLevel获取百分比。需注意权限和平台差异。

更多关于flutter如何获取设备电量的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中获取设备电量可以通过 battery_plus 插件实现。以下是具体步骤:

1. 添加依赖

pubspec.yaml 文件的 dependencies 部分添加:

dependencies:
  battery_plus: ^4.0.1

运行 flutter pub get 安装插件。

2. 配置平台权限(仅 Android 和 iOS)

  • Android:在 android/app/src/main/AndroidManifest.xml 中添加:
    <uses-permission android:name="android.permission.BATTERY_STATS" />
    
  • iOS:无需额外配置。

3. 代码实现

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

class BatteryPage extends StatefulWidget {
  @override
  _BatteryPageState createState() => _BatteryPageState();
}

class _BatteryPageState extends State<BatteryPage> {
  final Battery _battery = Battery();
  int? _batteryLevel;

  @override
  void initState() {
    super.initState();
    _getBatteryLevel();
  }

  // 获取当前电量
  Future<void> _getBatteryLevel() async {
    final level = await _battery.batteryLevel;
    setState(() {
      _batteryLevel = level;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Text(
          _batteryLevel != null ? '电量: $_batteryLevel%' : '获取中...',
        ),
      ),
    );
  }
}

4. 监听电量变化(可选)

@override
void initState() {
  super.initState();
  _battery.onBatteryStateChanged.listen((BatteryState state) {
    // 状态变化时重新获取电量
    _getBatteryLevel();
  });
}

注意事项:

  • 首次获取可能需要用户授权(部分系统)。
  • 模拟器可能返回固定值(如 100%),建议在真机测试。
  • 插件兼容 Android/iOS/Web/Windows/macOS,但不同平台实现可能略有差异。

通过以上步骤即可在 Flutter 应用中获取并显示设备电量信息。

回到顶部