具體代碼如下所示:
<?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;// 定義顯示電池信息的textviewprivate TextView tvBattery;@Overridepublic 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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (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() {@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubString 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);// 得到圖標IDint 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);}}};@Overrideprotected void onPause() {super.onPause();// 解除注冊監聽unregisterReceiver(mBroadcastReceiver);}}以上所述是小編給大家介紹的Andriod 獲取電池的信息實例代碼,希望對大家有所幫助!
新聞熱點
疑難解答