当前位置: 移动技术网 > 移动技术>移动开发>Android > Andriod 获取电池的信息实例代码

Andriod 获取电池的信息实例代码

2019年07月24日  | 移动技术网移动技术  | 我要评论
具体代码如下所示: <?xml version="1.0"?> <linearlayout android:orientati

具体代码如下所示:

<?xml version="1.0"?>
<linearlayout android: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">
<button android:layout_height="wrap_content" android:layout_width="match_parent" android:text="获取电池的信息" android:id="@+id/btn_battery"/>
<textview android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/tv_battery"/>
</linearlayout> 
package com.example.yanlei.wifi;
import android.content.broadcastreceiver;
import android.content.context;
import android.content.intent;
import android.content.intentfilter;
import android.os.batterymanager;
import android.os.bundle;
import android.support.v7.app.appcompatactivity;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.button;
import android.widget.textview;
public class mainactivity extends appcompatactivity {
// 定义电池信息的按钮
private button btnbattery;
// 定义显示电池信息的textview
private textview tvbattery;
@override
public void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
// 得到布局中的所有对象
findview();
// 设置对象的监听器
setlistener();
}
private void findview() {
// 得到布局中的所有对象
btnbattery = (button) findviewbyid(r.id.btn_battery);
tvbattery = (textview) findviewbyid(r.id.tv_battery);
}
// 设置对象的监听器
private void setlistener() {
btnbattery.setonclicklistener(listener);
}
onclicklistener listener = new onclicklistener() {
@override
public void onclick(view v) {
// todo auto-generated method stub
switch (v.getid()) {
// 当前的音量
case r.id.btn_battery:
intentfilter filter = new intentfilter();
filter.addaction(intent.action_battery_changed);
registerreceiver(mbroadcastreceiver, filter);
break;
}
}
};
// 声明广播接受者对象
private broadcastreceiver mbroadcastreceiver = new broadcastreceiver() {
@override
public void onreceive(context context, intent intent) {
// todo auto-generated method stub
string action = 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:未知状态。
int status = 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:未知状态。
int health = intent.getintextra("health", 0);
// boolean类型
boolean present = intent.getbooleanextra("present", false);
// 得到电池剩余容量
int level = intent.getintextra("level", 0);
// 得到电池最大值。通常为100。
int scale = intent.getintextra("scale", 0);
// 得到图标id
int icon_small = intent.getintextra("icon-small", 0);
// 充电方式: batterymanager.battery_plugged_ac:ac充电。 batterymanager.battery_plugged_usb:usb充电。
int plugged = intent.getintextra("plugged", 0);
// 得到电池的电压
int voltage = intent.getintextra("voltage", 0);
// 得到电池的温度,0.1度单位。例如 表示197的时候,意思为19.7度
int temperature = intent.getintextra("temperature", 0);
// 得到电池的类型
string technology = intent.getstringextra("technology");
// 得到电池状态
string statusstring = "";
// 根据状态id,得到状态字符串
switch (status) {
case batterymanager.battery_status_unknown:
statusstring = "unknown";
break;
case batterymanager.battery_status_charging:
statusstring = "charging";
break;
case batterymanager.battery_status_discharging:
statusstring = "discharging";
break;
case batterymanager.battery_status_not_charging:
statusstring = "not charging";
break;
case batterymanager.battery_status_full:
statusstring = "full";
break;
}
//得到电池的寿命状态
string healthstring = "";
//根据状态id,得到电池寿命
switch (health) {
case batterymanager.battery_health_unknown:
healthstring = "unknown";
break;
case batterymanager.battery_health_good:
healthstring = "good";
break;
case batterymanager.battery_health_overheat:
healthstring = "overheat";
break;
case batterymanager.battery_health_dead:
healthstring = "dead";
break;
case batterymanager.battery_health_over_voltage:
healthstring = "voltage";
break;
case batterymanager.battery_health_unspecified_failure:
healthstring = "unspecified failure";
break;
}
//得到充电模式
string acstring = "";
//根据充电状态id,得到充电模式
switch (plugged) {
case batterymanager.battery_plugged_ac:
acstring = "plugged ac";
break;
case batterymanager.battery_plugged_usb:
acstring = "plugged usb";
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
protected void onpause() {
super.onpause();
// 解除注册监听
unregisterreceiver(mbroadcastreceiver);
}
}

以上所述是小编给大家介绍的andriod 获取电池的信息实例代码,希望对大家有所帮助!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网