电池信息测试
来源:互联网 发布:sql 中文字符串函数 编辑:程序博客网 时间:2024/04/30 15:42
通过电话测试指令:*#*#4636#*#*
中可以看出: 在setting中有代码:BatteryInfo.java
com.android.settings.BatteryInfo
/* * Copyright (C) 2006 The Android Open Source Project * * 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.android.settings;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.os.Handler;import android.os.IPowerManager;import android.os.Message;import android.os.RemoteException;import android.os.ServiceManager;import android.os.SystemClock;import android.text.format.DateUtils;import android.widget.TextView;import com.android.internal.app.IBatteryStats;public class BatteryInfo extends Activity { private TextView mStatus; private TextView mPower; private TextView mLevel; private TextView mScale; private TextView mHealth; private TextView mVoltage; private TextView mTemperature; private TextView mTechnology; private TextView mUptime; private IBatteryStats mBatteryStats; private IPowerManager mScreenStats; private static final int EVENT_TICK = 1; private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case EVENT_TICK: updateBatteryStats(); sendEmptyMessageDelayed(EVENT_TICK, 1000); break; } } }; /** * Format a number of tenths-units as a decimal string without using a * conversion to float. E.g. 347 -> "34.7" */ private final String tenthsToFixedString(int x) { int tens = x / 10; return Integer.toString(tens) + "." + (x - 10 * tens); } /** *Listens for intent broadcasts */ private IntentFilter mIntentFilter; private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(Intent.ACTION_BATTERY_CHANGED)) { int plugType = intent.getIntExtra("plugged", 0); mLevel.setText("" + intent.getIntExtra("level", 0)); mScale.setText("" + intent.getIntExtra("scale", 0)); mVoltage.setText("" + intent.getIntExtra("voltage", 0) + " " + getString(R.string.battery_info_voltage_units)); mTemperature.setText("" + tenthsToFixedString(intent.getIntExtra("temperature", 0)) + getString(R.string.battery_info_temperature_units)); mTechnology.setText("" + intent.getStringExtra("technology")); int status = intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN); String statusString; if (status == BatteryManager.BATTERY_STATUS_CHARGING) { statusString = getString(R.string.battery_info_status_charging); if (plugType > 0) { statusString = statusString + " " + getString( (plugType == BatteryManager.BATTERY_PLUGGED_AC) ? R.string.battery_info_status_charging_ac : R.string.battery_info_status_charging_usb); } } else if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) { statusString = getString(R.string.battery_info_status_discharging); } else if (status == BatteryManager.BATTERY_STATUS_NOT_CHARGING) { statusString = getString(R.string.battery_info_status_not_charging); } else if (status == BatteryManager.BATTERY_STATUS_FULL) { statusString = getString(R.string.battery_info_status_full); } else { statusString = getString(R.string.battery_info_status_unknown); } mStatus.setText(statusString); switch (plugType) { case 0: mPower.setText(getString(R.string.battery_info_power_unplugged)); break; case BatteryManager.BATTERY_PLUGGED_AC: mPower.setText(getString(R.string.battery_info_power_ac)); break; case BatteryManager.BATTERY_PLUGGED_USB: mPower.setText(getString(R.string.battery_info_power_usb)); break; case (BatteryManager.BATTERY_PLUGGED_AC|BatteryManager.BATTERY_PLUGGED_USB): mPower.setText(getString(R.string.battery_info_power_ac_usb)); break; default: mPower.setText(getString(R.string.battery_info_power_unknown)); break; } int health = intent.getIntExtra("health", BatteryManager.BATTERY_HEALTH_UNKNOWN); String healthString; if (health == BatteryManager.BATTERY_HEALTH_GOOD) { healthString = getString(R.string.battery_info_health_good); } else if (health == BatteryManager.BATTERY_HEALTH_OVERHEAT) { healthString = getString(R.string.battery_info_health_overheat); } else if (health == BatteryManager.BATTERY_HEALTH_DEAD) { healthString = getString(R.string.battery_info_health_dead); } else if (health == BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE) { healthString = getString(R.string.battery_info_health_over_voltage); } else if (health == BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE) { healthString = getString(R.string.battery_info_health_unspecified_failure); } else { healthString = getString(R.string.battery_info_health_unknown); } mHealth.setText(healthString); } } }; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.battery_info); // create the IntentFilter that will be used to listen // to battery status broadcasts mIntentFilter = new IntentFilter(); mIntentFilter.addAction(Intent.ACTION_BATTERY_CHANGED); } @Override public void onResume() { super.onResume(); mStatus = (TextView)findViewById(R.id.status); mPower = (TextView)findViewById(R.id.power); mLevel = (TextView)findViewById(R.id.level); mScale = (TextView)findViewById(R.id.scale); mHealth = (TextView)findViewById(R.id.health); mTechnology = (TextView)findViewById(R.id.technology); mVoltage = (TextView)findViewById(R.id.voltage); mTemperature = (TextView)findViewById(R.id.temperature); mUptime = (TextView) findViewById(R.id.uptime); // Get awake time plugged in and on battery mBatteryStats = IBatteryStats.Stub.asInterface(ServiceManager.getService("batteryinfo")); mScreenStats = IPowerManager.Stub.asInterface(ServiceManager.getService(POWER_SERVICE)); mHandler.sendEmptyMessageDelayed(EVENT_TICK, 1000); registerReceiver(mIntentReceiver, mIntentFilter); } @Override public void onPause() { super.onPause(); mHandler.removeMessages(EVENT_TICK); // we are no longer on the screen stop the observers unregisterReceiver(mIntentReceiver); } private void updateBatteryStats() { long uptime = SystemClock.elapsedRealtime(); mUptime.setText(DateUtils.formatElapsedTime(uptime / 1000)); } }
- 电池信息测试
- Android 获取电池信息
- Android获取电池信息
- android 电池信息
- Android 获取电池信息
- 获取电池信息源码
- Android电池信息
- Android 获取电池信息
- Android 获取电池信息
- wm5获得电池状态信息
- Android电池信息获得问题
- Android电池信息的获取
- 三星S5830查看电池信息
- 获取Android设备电池信息
- Android 电池电流,电压信息
- 安卓获取电池信息
- Android电池信息(Battery information)
- Android电池信息(Battery information)
- 原型模式(Prototype Pattern)
- jQuery插件开发全解析
- 学习的第二天
- iOS 画图总结
- Jquery绑定事件(bind和live的区别)
- 电池信息测试
- test命令
- 解决The InnoDB feature is disabled; you need MySQL built with InnoDB
- HTML框架
- 创建型模式专题总结(Creational Pattern)
- Installing APC op-code cache on Ubuntu 10.04
- [精华] Oracle 游标使用大全
- 学习的第三天
- source insight 常用快捷键