关闭Android电池温度告警框,android电源信息查看(电量、温度、电压)实例代码

本文实例讲述了android电源信息查看方法。分享给大家供大家参考。具体如下:

1. PowerTestActivity:

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.PowerManager;

import android.view.View;

import android.widget.CheckBox;

import android.widget.TextView;

import java.text.DateFormat;

import java.util.Date;

/**

* So you thought sync used up your battery life.

*/

public class PowerTestActivity extends Activity {

TextView mLog;

DateFormat mDateFormat;

IntentFilter mFilter;

PowerManager.WakeLock mWakeLock;

SpinThread mThread;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// Set the layout for this activity. You can find it

// in res/layout/hello_activity.xml

setContentView(R.layout.main);

findViewById(R.id.checkbox).setOnClickListener(mClickListener);

mLog = (TextView)findViewById(R.id.log);

mDateFormat = DateFormat.getInstance();

mFilter = new IntentFilter();

mFilter.addAction(Intent.ACTION_BATTERY_CHANGED);

mFilter.addAction(Intent.ACTION_BATTERY_LOW);

mFilter.addAction(Intent.ACTION_BATTERY_OKAY);

mFilter.addAction(Intent.ACTION_POWER_CONNECTED);

PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);

mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "BatteryWaster");

mWakeLock.setReferenceCounted(false);

}

@Override

public void onPause() {

stopRunning();

}

View.OnClickListener mClickListener = new View.OnClickListener() {

public void onClick(View v) {

CheckBox checkbox = (CheckBox)v;

if (checkbox.isChecked()) {

startRunning();

} else {

stopRunning();

}

}

};

void startRunning() {

log("Start");

registerReceiver(mReceiver, mFilter);

mWakeLock.acquire();

if (mThread == null) {

mThread = new SpinThread();

mThread.start();

}

}

void stopRunning() {

log("Stop");

unregisterReceiver(mReceiver);

mWakeLock.release();

if (mThread != null) {

mThread.quit();

mThread = null;

}

}

void log(String s) {

mLog.setText(mLog.getText() + "\n" + mDateFormat.format(new Date()) + ": " + s);

}

BroadcastReceiver mReceiver = new BroadcastReceiver() {

public void onReceive(Context context, Intent intent) {

StringBuffer sb = new StringBuffer();

String action = intent.getAction();

/*

* 如果捕捉到的action是ACTION_BATTERY_CHANGED, 就运行onBatteryInfoReceiver()

*/

if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {

sb.append("\n当前电量:").append(intent.getIntExtra("level", 0));

sb.append("\n电池电量:").append(intent.getIntExtra("scale", 100));

// 电池伏数

sb.append("\n当前电压:").append(intent.getIntExtra("voltage", 0));

// 电池温度

sb.append("\n当前温度:").append(

intent.getIntExtra("temperature", 0));

String BatteryStatus = null;

switch (intent.getIntExtra("status",

BatteryManager.BATTERY_STATUS_UNKNOWN)) {

case BatteryManager.BATTERY_STATUS_CHARGING:

BatteryStatus = "充电状态";

break;

case BatteryManager.BATTERY_STATUS_DISCHARGING:

BatteryStatus = "放电状态";

break;

case BatteryManager.BATTERY_STATUS_NOT_CHARGING:

BatteryStatus = "未充电";

break;

case BatteryManager.BATTERY_STATUS_FULL:

BatteryStatus = "充满电";

break;

case BatteryManager.BATTERY_STATUS_UNKNOWN:

BatteryStatus = "未知道状态";

break;

}

sb.append("\n当前状态:").append(BatteryStatus);

String BatteryStatus2 = null;

switch (intent.getIntExtra("plugged",

BatteryManager.BATTERY_PLUGGED_AC)) {

case BatteryManager.BATTERY_PLUGGED_AC:

BatteryStatus2 = "AC充电";

break;

case BatteryManager.BATTERY_PLUGGED_USB:

BatteryStatus2 = "USB充电";

break;

}

sb.append("\n充电方式:").append(BatteryStatus2);

String BatteryTemp = null;

switch (intent.getIntExtra("health",

BatteryManager.BATTERY_HEALTH_UNKNOWN)) {

case BatteryManager.BATTERY_HEALTH_UNKNOWN:

BatteryTemp = "未知错误";

break;

case BatteryManager.BATTERY_HEALTH_GOOD:

BatteryTemp = "状态良好";

break;

case BatteryManager.BATTERY_HEALTH_DEAD:

BatteryTemp = "电池没有电";

break;

case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:

BatteryTemp = "电池电压过高";

break;

case BatteryManager.BATTERY_HEALTH_OVERHEAT:

BatteryTemp = "电池过热";

break;

}

sb.append("\n电池状态:").append(BatteryTemp);

log(sb.toString());

}

}

};

class SpinThread extends Thread {

private boolean mStop;

public void quit() {

synchronized (this) {

mStop = true;

}

}

public void run() {

while (true) {

synchronized (this) {

if (mStop) {

return;

}

}

}

}

}

}

2. main.xml:

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_marginLeft="25dp"

android:layout_marginTop="25dp"

android:textSize="18sp"

android:textColor="#ffffffff"

android:text="电源测试"

/>

android:layout_width="fill_parent"

android:layout_height="0px"

android:layout_weight="1"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_marginTop="25dp"

android:textSize="12sp"

android:textColor="#ffffffff"

/>

3. AndroidManifest.xml:

package="com.lenovo.android"

android:versionCode="1"

android:versionName="1.0">

android:label="@string/app_name">

希望本文所述对大家的Android程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring集成和Web服务

本文是我们名为“ Spring Integration for EAI ”的学院课程的一部分。 在本课程中,向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们。 接下来,您将深入研究Spring Integration的基础知识,例如通道,转换器和适…

如何在微博首页放置一个二维码?

首先用photoshop打开作为微博背景的图片,还有二维码图片。 然后将二维码图片整合到背景图片的适当位置,并编写相关说明,如下图。 然后将图片保存到桌面。 打开微博,可以看到左侧现在是没有二维码的

android 循环创建json数组对象,Android-创建JSON数组和JSON对象

小智..295使用以下代码:JSONObject student1 new JSONObject();try {student1.put("id", "3");student1.put("name", "NAME OF STUDENT");student1.put("year", "3rd");student1.put("curriculum", &q…

RethinkDB创始人教你如何打造一个伟大的互联网产品

关于作者 我叫Slava Akhmechet,本人是 RethinkDB 的创始人之一,RethinkDB是开源,分布式数据库,旨在帮助开发人员与运营商在打造实时应用时处理无结构数据 如何打造一个伟大的互联网产品 假如你认可“销售定乾坤”的原则&#xff0…

xml对象映射_将对象映射到多个XML模式–天气示例

xml对象映射我已经在EclipseLink JAXB(MOXy)的XmlPath和外部绑定文件扩展中撰写了以前的文章。 在本文中,我将通过将单个对象模型映射到两个不同的XML模式来演示这些扩展的功能。 为了使示例更加“真实”,XML数据将来自提供天气信…

java-JSON: Expected value at 1:0 错误

/* 前后端通信相关的配置,注释只允许使用多行方式 */ {/* 上传图片配置项 */"imageActionName": "uploadimage", /* 执行上传图片的action名称 */"imageFieldName": "upfile", /* 提交的图片表单名称 */"imageMaxSize": 204…

Android获取LAUNCHER,Android 获取Launcher 启动列表

先留着有时间再看获取Launcher 启动列表即 列出所有Launcher程序 通过PackageManager 来获取[代码 步骤]1. 定义内部类 LauncherItem 用于定义Application相关属性 比如:图标 名称 以及 ComponentNameJava代码1  public class LauncherItem {23   Drawable icon;…

数据库高可用架构 转载

数据库高可用架构对于我们这些应用端开发的人来说是一个比较陌生的领域,是在具体的数据库产品之上搭建的环境,需要像DBA这样对数据库产品有足够的了解才能有所涉及,虽然不能深入其中,但可以通过一些经典的高可用架构学习其中的思想…

将Java 8日期时间API与JSF和Java EE 7结合使用

如果您将Java 8与Java EE 7一起使用,则在尝试利用某些Java 8新功能时可能会遇到一些怪癖。 一个这样的怪癖是,默认情况下,新的Date-Time API不适用于许多Java EE 7 API,因为它们是为与java.util.Date和/或较早的Date API一起使用而…

解决 There are no resources that can be added or removed from the server

网上下载了一个项目,在eclipse中部署时,加载项目到tomcat中项目名称无法显示,报出There are no resources that can be added or removed from the server 这个是因为下载下来的项目没有eclipse的相关配置文件,eclipse不知道这是一个什么项目。 解决方法: 1、进入confi…

推荐几款爬虫软件与无需编程的数据分析工具

爬虫软件: 八爪鱼,火车头,前嗅,熊猫采集器,集搜客等 相对来说八爪鱼配置还是比较简单的,不过免费版的爬起数据来那叫一个慢。。。 不过也可能是我是个急性子。。。1分钟爬10条,很心塞啊。火车头就尴尬,不是高 配版。。基本上啥也干不了,不过好的一点是他们的论坛还是…

登录时本地保存账号密码及关闭ARC的方法

对于登录时保存用户名和密码,苹果官方使用的是KeychainItemWrapper,但使用时有些不便,如在引入KeychainItemWrapper的类中都要关闭arc,不能自定义key,必须使用该类提供的kSecValueData、kSecAttrAccount等。所以推荐使…

linux系统的4个部分,以下是Linux文件系统的4个相关的结构定义中的一部分: Struct i..._考试资料网...

问答题为了实现文件的共享,办法之一是把文件目录分成基本文件目录和符号文件目录。现设目录文件存放在磁盘上,盘块长度为1024B,每个文件说明占48B。其中,文件符号名占6B,内部标识符ID占2B,请回答下列问题&a…

收银扫描设备统计

前端时间开发一个会员管理系统,里面涉及一些支付的问题,就查找一些配套的硬件设备。记录点滴成长 2000元的配套设备一般就可以满足系统应用啦。

推断:Facebook的新Java静态分析工具

如何使用Facebook的Infer改善Java开发工作流程? 如果您与技术话题保持紧密联系(如果您正在阅读此博客,我想您应该这样做),那么您可能听说过Facebook 刚刚向公众发布的新工具:推断。 由于它来自Facebook&am…

html 转换xslt,XSLT xsl:template 元素

元素元素用于构建模板。match 属性用于关联 XML 元素和模板。match 属性也可用来为整个文档定义模板。match 属性的值是 XPath 表达式(举例,match"/" 定义整个文档)。好了,让我们看一下上一节中的 XSL 文件的简化版本:xmlns:xsl&qu…

开发一个大数据网站做的铺垫

知名大数据分析网站推荐8个 用到的大数据5个关键技术 人工智能6大关键技术

[C/C++]C++标准

本文若如特别说明都引于ISO/IEC 14882:2011 7、声明(Declarations) 声明序列(declaration-seq): 声明(declaration) 声明序列(declaration-seq) 声明(declaration)声明(declaration): block-declaration function-definition template-declaration explicit-…

js html实体编码转换,字符串js编码转换成实体html编码的方法(防范XSS攻击)

js代码在html页面中转换成实体html编码的方法一&#xff1a;js代码转换成实体htmljs代码转换成实体html--红function test(){alert(测试红)}test();js代码转换成实体html--绿alert(测试绿)直接在html页面写法是这样写即可&#xff1a;方法一&#xff1a;<script>alert(&q…

程序员必备工具

声明&#xff1a;转自CSDN博主「不脱发的程序猿」的原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/m0_38106923/article/details/100130354 目录 1、搜索引擎 2、PPT 3、图片操作…