Back to project page Cafe.
The source code is released under:
Apache License
If you think the Android project Cafe listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright (C) 2011 Baidu.com Inc/* w w w. j av a 2s. co m*/ * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.baidu.cafe.remote; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; /** * @author chengzhenyu@baidu.com * @date 2011-06-20 */ class BatteryState { private String mStatus; private String mHealth; private boolean mPresent; private int mLevel; private int mScale; private int mIcon_small; private String mPlugged; private int mVoltage; private int mTemperature; private String mTechnology; private Context mContext; public BatteryState(Context context) { mContext = context; } public void init() { IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_BATTERY_CHANGED); mContext.registerReceiver(mBroadcastReceiver, filter); try { Thread.sleep(5); } catch (InterruptedException e) { e.printStackTrace(); } } public void deinit() { mContext.unregisterReceiver(mBroadcastReceiver); } public String getStatus() { return mStatus; } public String getHealth() { return mHealth; } public boolean getPresent() { return mPresent; } public int getLevel() { return mLevel; } public int getScale() { return mScale; } public int getIcon_small() { return mIcon_small; } public String getPlugged() { return mPlugged; } public int getVoltage() { return mVoltage; } public int getTemperature() { return mTemperature; } public String getTechnology() { return mTechnology; } private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action .equals(Intent.ACTION_BATTERY_CHANGED)) { int status = intent.getIntExtra( "status", 0); int health = intent.getIntExtra( "health", 0); mPresent = intent.getBooleanExtra( "present", false); mLevel = intent .getIntExtra("level", 0); mScale = intent .getIntExtra("scale", 0); mIcon_small = intent.getIntExtra( "icon-small", 0); int plugged = intent.getIntExtra( "plugged", 0); mVoltage = intent.getIntExtra( "voltage", 0); mTemperature = intent.getIntExtra( "temperature", 0); mTechnology = intent .getStringExtra("technology"); switch (status) { case BatteryManager.BATTERY_STATUS_UNKNOWN: mStatus = "unknown"; break; case BatteryManager.BATTERY_STATUS_CHARGING: mStatus = "charging"; break; case BatteryManager.BATTERY_STATUS_DISCHARGING: mStatus = "discharging"; break; case BatteryManager.BATTERY_STATUS_NOT_CHARGING: mStatus = "not charging"; break; case BatteryManager.BATTERY_STATUS_FULL: mStatus = "full"; break; } switch (health) { case BatteryManager.BATTERY_HEALTH_UNKNOWN: mHealth = "unknown"; break; case BatteryManager.BATTERY_HEALTH_GOOD: mHealth = "good"; break; case BatteryManager.BATTERY_HEALTH_OVERHEAT: mHealth = "overheat"; break; case BatteryManager.BATTERY_HEALTH_DEAD: mHealth = "dead"; break; case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE: mHealth = "voltage"; break; case BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE: mHealth = "unspecified failure"; break; } switch (plugged) { case BatteryManager.BATTERY_PLUGGED_AC: mPlugged = "plugged ac"; break; case BatteryManager.BATTERY_PLUGGED_USB: mPlugged = "plugged usb"; break; } } } }; }