本文实例讲述了Android获取手机电池电量用法。分享给大家供大家参考。具体如下:
原理概述:
手机电池电量的获取在应用程序的开发中也很常用,Android系统中手机电池电量发生变化的消息是通过Intent广播来实现的,常用的Intent的Action有 Intent.ACTION_BATTERY_CHANGED(电池电量发生改变时)、Intent.ACTION_BATTERY_LOW(电池电量达到下限时)、和Intent.ACTION_BATTERY_OKAY(电池电量从低恢复到高时)。
以下以ACTION_BATTERY_CHANGED为例的小例子:
现在配置文件中添加权限
<uses-permission android:name="android.permission.BATTERY_STATS"/>
主类MainActivity
/**
* 这是一个监听安卓手机电量的demo
*/
public class MainActivity extends AppCompatActivity {
private TextView tv_show;
private MyReceiver receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_show= (TextView) findViewById(R.id.txt_show);
}
@Override
protected void onResume() {
super.onResume();
receiver=new MyReceiver();
IntentFilter filter=new IntentFilter();
//安卓提供的Action
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(receiver,filter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){
//获取当前电量
int level=intent.getIntExtra("level",0);
//获取系统总电量
int sum=intent.getIntExtra("scale",100);
tv_show.setText("当前手机电量:"+(level*100)/sum+"%");
if (level>90){
Toast.makeText(context,"当前电量充足",Toast.LENGTH_SHORT).show();
}
}
}
}
}
本demo是在Android Studio下运行且通过