安卓(Android)开发如何获取当前电量?

方法一: 使用adb直接查看

如果不需要在程序中使用电量信息只是要查看一下电量的话(你直接看显示不好吗? 话说有些智能设备没有屏幕的)

可以使用命令查看

adb shell dumpsys battery

一般结果如下

Current Battery Service state:
 AC powered: false //是否正在使用交流电充电
 USB powered: true //是否正在使用其他设备USB接口充电
 Wireless powered: false //是否是无线充电
 status: 2 //状态
 health: 2 //电池健康程度
 present: true //当前量是否为百分比
 level: 77 //当前量
 scale: 100 //总量
 voltage: 4130000 //电压
 temperature: 389 //温度
 technology: Li-ion //电池类型

方法二:使用电池服务

安卓6及以上

batteryManager = getSystemService(BatteryManager.class);

安卓6以下

batteryManager = (BatteryManager) getSystemService(Context.BATTERY_SERVICE);

方法三: 注册接收器

新建一个类, 使用该类继承于BroadcastReceiver, 实现onReceive方法.

在Activity, Service或AndroidManifest.xml中注册接收器

final BroadcastReceiver mBatteryReceiver = new BroadcastReceiver() {
 @Override
 public void onReceive(Context context, Intent intent) {
 //当前电量
 final int level = intent.getIntExtra("level", 0);
 //总电量
 final int scale = intent.getIntExtra("scale", 100);
 //电量百分比
 mPower = level * 100 / scale;
 }
};

在代码中注册

registerReceiver(mBatteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

在AndroidManifest.xml文件中注册

<application>
 ...
 <receiver android:name="接收器类名">
 <intent-filter>
 <action android:name="android.intent.action.BATTERY_CHANGED" />
 </intent-filter>
 </receiver>
 ...
</application>

当前电池电量发生变量的时候会系统会回调接收器的onReceive方法, 在onReceive方法中可以获取当前电量

因为这种方法是系统在电量变化主动通知应用程序,所有这种方法是非常及时的

发表时间:2021-01-10 15:32:36

修改时间:2021-03-21 16:39:11

版权声明:本站原创,转载请附带本文链接

https://code.iamhefang.cn/content/how-to-fetch-battery-level-in-android.html

留言(共4条)

#1何方2021-01-17 01:21

留言

#2何方2021-01-17 01:21

留言2

#3何方2021-01-17 01:22

34

#5何方2021-01-17 09:45

232323

发表留言

联系方式至少填一个,不会公开
不会公开