zoukankan      html  css  js  c++  java
  • 手机服务 & BroadcastReceiver & 获取电池相关内容

    BatteryReceiver.java     广播机制

    View Code
    package com.example.batterydemo;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.BatteryManager;
    import android.util.Log;
    
    public class BatteryReceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context arg0, Intent intent) {
            // TODO Auto-generated method stub
            String action = intent.getAction();
            // 要看看是不是我们要处理的消息
            if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
    
                // 电池电量,数字
                Log.i("Battery", "★电池电量★:" + intent.getIntExtra("level", 0));
                // 电池最大容量
                Log.i("Battery", "★电池最大容量★:" + intent.getIntExtra("scale", 0));
                // 电池伏数,电池的电压
                Log.i("Battery", "★电池伏数★:" + intent.getIntExtra("voltage", 0));
                // 电池温度(单位:摄氏度)
                Log.i("Battery", "★电池温度★:" + intent.getIntExtra("temperature", 0));
                // 取得电池类型
                Log.i("Battery", "★电池类型★:" + intent.getStringExtra("technology"));
                // 取得电池对应的图标ID
                Log.i("Battery",
                        "★取得电池对应的图标ID★:" + intent.getIntExtra("icon-small", 0));
    
                /** 电池状态,返回是一个数字 */
                // BatteryManager.BATTERY_STATUS_CHARGING 表示是充电状态
                // BatteryManager.BATTERY_STATUS_NOT_CHARGING 表示电池不充电状态
                // BatteryManager.BATTERY_STATUS_DISCHARGING 放电中
                // BatteryManager.BATTERY_STATUS_NOT_CHARGING 未充电
                // BatteryManager.BATTERY_STATUS_FULL 电池满
                Log.i("Battery","★电池状态★:"
                            + intent.getIntExtra("status",
                                BatteryManager.BATTERY_STATUS_UNKNOWN));
                Log.i("Battery", "充电状态:" + BatteryManager.BATTERY_STATUS_CHARGING);
                Log.i("Battery", "电池不充电状态:"
                        + BatteryManager.BATTERY_STATUS_NOT_CHARGING);
                Log.i("Battery", "放电中:" + BatteryManager.BATTERY_STATUS_DISCHARGING);
                Log.i("Battery", "未充电:"
                        + BatteryManager.BATTERY_STATUS_NOT_CHARGING);
                Log.i("Battery", "电池满:" + BatteryManager.BATTERY_STATUS_FULL);
    
                /** 充电类型 */
                Log.i("Battery", "★充电类型★ :" + intent.getIntExtra("plugged", 0));
                Log.i("Battery", "交流电电源:" + BatteryManager.BATTERY_PLUGGED_AC);
                Log.i("Battery", "USB电源:" + BatteryManager.BATTERY_PLUGGED_USB);
    
                /** 电池健康情况,返回也是一个数字 */
                // BatteryManager.BATTERY_HEALTH_GOOD 电池健康
                // BatteryManager.BATTERY_HEALTH_OVERHEAT 电池过热
                // BatteryManager.BATTERY_HEALTH_DEAD 电池损毁
                // BatteryManager.BATTERY_HEALTH_UNKNOWN 未知状态
                // BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE 电池电压过大
                // BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE 未明示故障
                Log.i("Battery",
                        "★电池健康情况★:"
                                + intent.getIntExtra("health",
                                        BatteryManager.BATTERY_HEALTH_UNKNOWN));
                Log.i("Battery", "电池健康:" + BatteryManager.BATTERY_HEALTH_GOOD);
                Log.i("Battery", "电池过热:" + BatteryManager.BATTERY_HEALTH_OVERHEAT);
                Log.i("Battery", "电池损毁:" + BatteryManager.BATTERY_HEALTH_DEAD);
                Log.i("Battery", "未知状态:" + BatteryManager.BATTERY_HEALTH_UNKNOWN);
                Log.i("Battery", "电池电压过大:"
                        + BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE);
                Log.i("Battery", "未明示故障:"
                        + BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE);
                
            }
        }
    
    }

    BatteryActivity.java      Activity页面

    View Code
    package com.example.batterydemo;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;
    
    public class BatteryActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            super.setContentView(R.layout.main);
            BatteryReceiver breceiver = new BatteryReceiver();
            IntentFilter intentFinter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
            BatteryActivity.this.registerReceiver(breceiver, intentFinter);
        }
    
    }

    AndroidManifest.xml     配置文件

    View Code
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.batterydemo"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="10"
            android:targetSdkVersion="17" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name=".BatteryActivity"
                android:label="@string/app_name"
                android:theme="@style/FullscreenTheme" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            
            
            <receiver android:name=".BatteryReceiver" />
        </application>
    
    </manifest>
  • 相关阅读:
    mongodb 的安装历程
    从C的声明符到Objective-C的Blocks语法
    #译# Core Data概述 (转)
    避免在block中循环引用(Retain Cycle in Block)
    GCD和信号量
    Blocks的申明调用与Queue当做锁的用法
    [译]在IB中实现自动布局
    清理Xcode的技巧和方法
    SVN的Status字段含义
    iOS应用崩溃日志揭秘2
  • 原文地址:https://www.cnblogs.com/androidsj/p/2986631.html
Copyright © 2011-2022 走看看