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 应用中获取并显示设备电量信息。

