天线|RF射频
直播中

王洋

7年用户 193经验值
私信 关注
[问答]

Android手机电池电量的应用,不看肯定后悔

求大佬介绍一下Android手机电池电量的应用有哪些?

回帖(1)

张嘉

2021-4-19 13:55:20
原理概述:
手机电池电量的获取在应用程序的开发中也很常用,Android系统中手机电池电量发生变化的消息是通过Intent广播来实现的,常用的Intent的Action有 Intent.ACTION_BATTERY_CHANGED(电池电量发生改变时)、Intent.ACTION_BATTERY_LOW(电池电量达到下限时)、和Intent.ACTION_BATTERY_OKAY(电池电量从低恢复到高时)。
当需要在程序中获取电池电量的信息时,需要为应用程序注册BroadcastReceiver组件,当特定的Action事件发生时,系统将会发出相应的广播,应用程序就可以通过BroadcastReceiver来接受广播,并进行相应的处理。
main.xml布局文件
android:orientatio
android:layout_widt
android:layout_heigh》
android:layout_widt
android:layout_heigh
android:textO
android:textOf /》
android:layout_widt
android:layout_heigh /》
复制代码
BatteryActivity类
package com.ljq.activity;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.TextView;
import android.widget.ToggleButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
publics BatteryActivity extends Activity {
private ToggleButton tb=null;
private TextView tv=null;
private BatteryReceiver receiver=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
receiver=new BatteryReceiver();
tv=(TextView)findViewById(R.id.tv);
tb=(ToggleButton)findViewById(R.id.tb);
tb.setOnCheckedChangeListener(new OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
//获取电池电量
if(isChecked){
IntentFilter filter=new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(receiver, filter);//注册BroadcastReceiver
}else {
//停止获取电池电量
unregisterReceiver(receiver);
tv.setText(null);
}
}
});
}
privates BatteryReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
int current=intent.getExtras().getInt(“level”);//获得当前电量
int total=intent.getExtras().getInt(“scale”);//获得总电量
int percent=current*100/total;
tv.setText(“现在的电量是”+percent+“%。”);
}
}
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分