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获取电池的信息实例代码,希望对大家有所帮助!