国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android監聽電池狀態實例代碼

2020-01-02 07:02:43
字體:
來源:轉載
供稿:網友

如果要監聽電池的狀態改變,需要動態注冊:android.intent.action.BATTERY_CHANGED,收到Action后可以根據對應的Key獲取你需要的信息,更詳細信息可以參考以下例子中的BatteryChangedReceiver類

具體代碼如下所示:

package com.example.charginganimation;import android.app.Activity;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.view.View;public class MainActivity extends Activity {private CustomClipLoading ccl;private BatteryChangedReceiver receiver = new BatteryChangedReceiver();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);registerReceiver(receiver, getFilter());}private IntentFilter getFilter() {IntentFilter filter = new IntentFilter();filter.addAction(Intent.ACTION_BATTERY_CHANGED);filter.addAction(Intent.ACTION_BATTERY_LOW);filter.addAction(Intent.ACTION_BATTERY_OKAY);return filter;}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubunregisterReceiver(receiver);super.onDestroy();}class BatteryChangedReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubfinal String action = intent.getAction();if (action.equalsIgnoreCase(Intent.ACTION_BATTERY_CHANGED)) {System.out.println("BatteryChangedReceiver BATTERY_CHANGED_ACTION---");// 當前電池的電壓int voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE,-1);// 電池的健康狀態int health = intent.getIntExtra(BatteryManager.EXTRA_HEALTH, -1);switch (health) {case BatteryManager.BATTERY_HEALTH_COLD:System.out.println("BATTERY_HEALTH_COLD");break;case BatteryManager.BATTERY_HEALTH_DEAD:System.out.println("BATTERY_HEALTH_DEAD ");break;case BatteryManager.BATTERY_HEALTH_GOOD:System.out.println("BATTERY_HEALTH_GOOD");break;case BatteryManager.BATTERY_HEALTH_OVERHEAT:System.out.println("BATTERY_HEALTH_OVERHEAT");break;case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:System.out.println("BATTERY_HEALTH_COLD");break;case BatteryManager.BATTERY_HEALTH_UNKNOWN:System.out.println("BATTERY_HEALTH_UNKNOWN");break;case BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE:System.out.println("BATTERY_HEALTH_UNSPECIFIED_FAILURE");break;default:break;}// 電池當前的電量, 它介于0和 EXTRA_SCALE之間int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);// 電池電量的最大值int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);// 當前手機使用的是哪里的電源int pluged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED,-1);switch (pluged) {case BatteryManager.BATTERY_PLUGGED_AC:// 電源是AC charger.[應該是指充電器]System.out.println("BATTERY_PLUGGED_AC");break;case BatteryManager.BATTERY_PLUGGED_USB:// 電源是USB portSystem.out.println("BATTERY_PLUGGED_USB ");break;default:break;}int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);switch (status) {case BatteryManager.BATTERY_STATUS_CHARGING:// 正在充電System.out.println("BATTERY_STATUS_CHARGING ");break;case BatteryManager.BATTERY_STATUS_DISCHARGING:System.out.println("BATTERY_STATUS_DISCHARGING ");break;case BatteryManager.BATTERY_STATUS_FULL:// 充滿System.out.println("BATTERY_STATUS_FULL ");break;case BatteryManager.BATTERY_STATUS_NOT_CHARGING:// 沒有充電System.out.println("BATTERY_STATUS_NOT_CHARGING ");break;case BatteryManager.BATTERY_STATUS_UNKNOWN:// 未知狀態System.out.println("BATTERY_STATUS_UNKNOWN ");break;default:break;}// 電池使用的技術。比如,對于鋰電池是Li-ionString technology = intent.getStringExtra(BatteryManager.EXTRA_TECHNOLOGY);// 當前電池的溫度int temperature = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);System.out.println("voltage = " + voltage + " technology = "+ technology + " temperature = " + temperature+ " level = " + level + " scale = " + scale);} else if (action.equalsIgnoreCase(Intent.ACTION_BATTERY_LOW)) {// 表示當前電池電量低System.out.println("BatteryChangedReceiver ACTION_BATTERY_LOW---");} else if (action.equalsIgnoreCase(Intent.ACTION_BATTERY_OKAY)) {// 表示當前電池已經從電量低恢復為正常System.out.println("BatteryChangedReceiver ACTION_BATTERY_OKAY---");}}}}

獲取apk和版本信息

private int getVerCode(Context context) {int verCode = -1;try {verCode = context.getPackageManager().getPackageInfo("com.example.charginganimation", 0).versionCode;} catch (NameNotFoundException e) {e.printStackTrace();}return verCode;}private String getVerName(Context context) {String verName = "";try {verName = context.getPackageManager().getPackageInfo("com.example.charginganimation", 0).versionName;} catch (NameNotFoundException e) {e.printStackTrace();}return verName;}

以上代碼內容是小編給大家介紹的android監聽電池狀態的實例代碼,本文寫的不好還請見諒,有好的意見歡迎給小編留言,我會及時給大家溝通的,謝謝大家一直以來對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙胜| 盐城市| 定陶县| 宣恩县| 汝南县| 通海县| 泸溪县| 岳普湖县| 南溪县| 叶城县| 安康市| 玉门市| 镇巴县| 崇阳县| 蓝田县| 当涂县| 灌南县| 长海县| 页游| 墨竹工卡县| 石泉县| 北票市| 武冈市| 永靖县| 双辽市| 东明县| 淳安县| 焦作市| 双柏县| 轮台县| 城市| 黄陵县| 襄城县| 鸡西市| 商都县| 聂拉木县| 房山区| 买车| 湖州市| 芒康县| 安福县|