Andriod 获取电池的信息实例代码
具体代码如下所示:
<?xmlversion="1.0"?>
<LinearLayoutandroid:orientation="vertical"android:layout_height="match_parent"android:layout_width="match_parent"xmlns:tools="http://schemas.android.com/tools"xmlns:android="http://schemas.android.com/apk/res/android">
<Buttonandroid:layout_height="wrap_content"android:layout_width="match_parent"android:text="获取电池的信息"android:id="@+id/btn_battery"/>
<TextViewandroid:layout_height="wrap_content"android:layout_width="match_parent"android:id="@+id/tv_battery"/>
</LinearLayout>
packagecom.example.yanlei.wifi;
importandroid.content.BroadcastReceiver;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.content.IntentFilter;
importandroid.os.BatteryManager;
importandroid.os.Bundle;
importandroid.support.v7.app.AppCompatActivity;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.TextView;
publicclassMainActivityextendsAppCompatActivity{
//定义电池信息的按钮
privateButtonbtnBattery;
//定义显示电池信息的textview
privateTextViewtvBattery;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//得到布局中的所有对象
findView();
//设置对象的监听器
setListener();
}
privatevoidfindView(){
//得到布局中的所有对象
btnBattery=(Button)findViewById(R.id.btn_battery);
tvBattery=(TextView)findViewById(R.id.tv_battery);
}
//设置对象的监听器
privatevoidsetListener(){
btnBattery.setOnClickListener(listener);
}
OnClickListenerlistener=newOnClickListener(){
@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub
switch(v.getId()){
//当前的音量
caseR.id.btn_battery:
IntentFilterfilter=newIntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(mBroadcastReceiver,filter);
break;
}
}
};
//声明广播接受者对象
privateBroadcastReceivermBroadcastReceiver=newBroadcastReceiver(){
@Override
publicvoidonReceive(Contextcontext,Intentintent){
//TODOAuto-generatedmethodstub
Stringaction=intent.getAction();
if(action.equals(Intent.ACTION_BATTERY_CHANGED)){
//得到电池状态:
//BatteryManager.BATTERY_STATUS_CHARGING:充电状态。
//BatteryManager.BATTERY_STATUS_DISCHARGING:放电状态。
//BatteryManager.BATTERY_STATUS_NOT_CHARGING:未充满。
//BatteryManager.BATTERY_STATUS_FULL:充满电。
//BatteryManager.BATTERY_STATUS_UNKNOWN:未知状态。
intstatus=intent.getIntExtra("status",0);
//得到健康状态:
//BatteryManager.BATTERY_HEALTH_GOOD:状态良好。
//BatteryManager.BATTERY_HEALTH_DEAD:电池没有电。
//BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:电池电压过高。
//BatteryManager.BATTERY_HEALTH_OVERHEAT:电池过热。
//BatteryManager.BATTERY_HEALTH_UNKNOWN:未知状态。
inthealth=intent.getIntExtra("health",0);
//boolean类型
booleanpresent=intent.getBooleanExtra("present",false);
//得到电池剩余容量
intlevel=intent.getIntExtra("level",0);
//得到电池最大值。通常为100。
intscale=intent.getIntExtra("scale",0);
//得到图标ID
inticon_small=intent.getIntExtra("icon-small",0);
//充电方式:BatteryManager.BATTERY_PLUGGED_AC:AC充电。BatteryManager.BATTERY_PLUGGED_USB:USB充电。
intplugged=intent.getIntExtra("plugged",0);
//得到电池的电压
intvoltage=intent.getIntExtra("voltage",0);
//得到电池的温度,0.1度单位。例如表示197的时候,意思为19.7度
inttemperature=intent.getIntExtra("temperature",0);
//得到电池的类型
Stringtechnology=intent.getStringExtra("technology");
//得到电池状态
StringstatusString="";
//根据状态id,得到状态字符串
switch(status){
caseBatteryManager.BATTERY_STATUS_UNKNOWN:
statusString="unknown";
break;
caseBatteryManager.BATTERY_STATUS_CHARGING:
statusString="charging";
break;
caseBatteryManager.BATTERY_STATUS_DISCHARGING:
statusString="discharging";
break;
caseBatteryManager.BATTERY_STATUS_NOT_CHARGING:
statusString="notcharging";
break;
caseBatteryManager.BATTERY_STATUS_FULL:
statusString="full";
break;
}
//得到电池的寿命状态
StringhealthString="";
//根据状态id,得到电池寿命
switch(health){
caseBatteryManager.BATTERY_HEALTH_UNKNOWN:
healthString="unknown";
break;
caseBatteryManager.BATTERY_HEALTH_GOOD:
healthString="good";
break;
caseBatteryManager.BATTERY_HEALTH_OVERHEAT:
healthString="overheat";
break;
caseBatteryManager.BATTERY_HEALTH_DEAD:
healthString="dead";
break;
caseBatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:
healthString="voltage";
break;
caseBatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE:
healthString="unspecifiedfailure";
break;
}
//得到充电模式
StringacString="";
//根据充电状态id,得到充电模式
switch(plugged){
caseBatteryManager.BATTERY_PLUGGED_AC:
acString="pluggedac";
break;
caseBatteryManager.BATTERY_PLUGGED_USB:
acString="pluggedusb";
break;
}
//显示电池信息
tvBattery.setText("电池的状态:"+statusString
+"\n健康值:"+healthString
+"\n电池剩余容量:"+level
+"\n电池的最大值:"+scale
+"\n小图标:"+icon_small
+"\n充电方式:"+plugged
+"\n充电方式:"+acString
+"\n电池的电压:"+voltage
+"\n电池的温度:"+(float)temperature*0.1
+"\n电池的类型:"+technology);
}
}
};
@Override
protectedvoidonPause(){
super.onPause();
//解除注册监听
unregisterReceiver(mBroadcastReceiver);
}
}
以上所述是小编给大家介绍的Andriod获取电池的信息实例代码,希望对大家有所帮助!