1. Java 反射获取电池容量

目前手机出厂下配置电池容量主要是通过修改 power_profile.xml 的电池容量参数,一般Google 默认配置为 1000 mAh

故只要是出货的手机一般都需要修改该值。我们可以直接导出 frameworks\base\core\res\res\xml\power_profile.xml 进行查看与修改

或者使用 Java 反射 PowerProfile.java 求出电池容量大小,方法如下。

package com.fadi.batteryanalysistool.battery;import android.content.Context;/*** Created by fadi.su on 2018/5/22.*/
public class BatteryInfo {/*** 获取电池容量 mAh** 源头文件:frameworks/base/core/res\res/xml/power_profile.xml** Java 反射文件:frameworks\base\core\java\com\android\internal\os\PowerProfile.java*/public static String getBatteryCapacity(Context context) {Object mPowerProfile;double batteryCapacity = 0;final String POWER_PROFILE_CLASS = "com.android.internal.os.PowerProfile";try {mPowerProfile = Class.forName(POWER_PROFILE_CLASS).getConstructor(Context.class).newInstance(context);batteryCapacity = (double) Class.forName(POWER_PROFILE_CLASS).getMethod("getBatteryCapacity").invoke(mPowerProfile);} catch (Exception e) {e.printStackTrace();}return String.valueOf(batteryCapacity + " mAh");}
}

运行结果

01-12 03:06:36.461 9877-9877/com.fadi.batteryanalysistool D/suhuazhi: batteryCap = 3000.0 mAh

2. Java 反射方法 getBatteryCapacity

文件路径在于:frameworks\base\core\java\com\android\internal\os\PowerProfile.java

/*** Reports power consumption values for various device activities. Reads values from an XML file.* Customize the XML file for different devices.* [hidden]*/
public class PowerProfile {/*** Battery capacity in milliAmpHour (mAh).*/public static final String POWER_BATTERY_CAPACITY = "battery.capacity";/*** Returns the battery capacity, if available, in milli Amp Hours. If not available,* it returns zero.* @return the battery capacity in mAh*/public double getBatteryCapacity() {return getAveragePower(POWER_BATTERY_CAPACITY);}}

3. 源文件定义

文件路径:frameworks\base\core\res\res\xml\power_profile.xml

默认情况下是 1000 mAh,一般手机厂商会进行修改,便于第三方应用读取

  <!-- This is the battery capacity in mAh (measured at nominal voltage) --><item name="battery.capacity">1000</item>

Android 获取电池容量 mAh相关推荐

  1. android获取电池信息;android获取电池容量、技术、电压、电量、温度等信息

    android获取电池信息:android获取电池容量.技术.电压.电量.温度等信息 1.这里我仅展示工具类,需要注意的是这里的部分值要刷新后才能显示,添加刷新UI的方法即可,而且电量温度等都是变化的 ...

  2. Android 设备电池容量和使用量的获取

    1.获取 Android 设备的电池容量 电池容量的获取主要通过反射 com.android.internal.os.PowerProfile 类,调用其中的 getBatteryCapacity 方 ...

  3. android 获取电池最大容量,地表最大容量:Energizer推出16000mAh电池安卓机,续航长达一个周...

    IT之家3月2日消息,在MWC上电池生产商Energizer发布一款Android手机"Energizer Power Max P16K Pro",其最大卖点是使用了16000mA ...

  4. android充电状态广播,Android 获取电池是否充电状态、充电器类型

    0. demo 下载 https://github.com/sufadi/BatteryInfo 1. 电池广播获取充电状态 // 电池状态 import static android.os.Batt ...

  5. android 获取电池最大容量,Android 获取电池电压和电池电压高提示

    1. Demo 下载 https://github.com/sufadi/BatteryInfo 2. 获取电池电压 // 当前电池电压 import static android.os.Batter ...

  6. android+获取电池信息,Delphi XE5 Android应用程序获取电池信息

    将android.os.BatteryManager类移植到Delphi. uses Androidapi.JNI.JavaTypes, Androidapi.JNIBridge; type JBat ...

  7. android获取电池是否充电,Android 判断电池是否为充电状态的方法

    1. 工具类方法 package com.android.settings.fuelgauge; import android.content.Context; import android.cont ...

  8. Android获取电池电量的三种方法

    方法一:注册广播 这个方法网上一搜一大堆,我也贴出部分代码 IntentFilter filter2 = new IntentFilter(); filter2.addAction(Intent.AC ...

  9. android 静态注册获取电量,获取手机电池百分比和电池容量方法

    在智能手机的开发过程中,经常需要获取手机的电池信息.其实获取的方法很多,下面介绍下方法. 一:首先介绍获取电池容量.例如java反射方式获取.代码如下 package com.example.jame ...

最新文章

  1. 使用XML创建Excel文档
  2. 网页防止另存为,屏蔽右键,防止复制代码,防止被人frame等网页代码
  3. 【CentOS Linux 7】实验5【Samba服务器管理】
  4. display:block的注意
  5. 嵌入式软件工程师2021面试指南【转】
  6. 如何把html转换cad,Tab2Xls插件(捷克版)将AutoCAD表格转换为XLS、CSV或HTML。
  7. C++笔记-解决VS2015Qt项目MSB3758.MSB4036
  8. MXNet——symbol
  9. javascript 密码花园 并不清晰的js基础 总结(1)
  10. 中标麒麟Linux系统串口,中标麒麟操作系统串口调试方法研究-嵌入式-电子工程世界网...
  11. python-txt转换为pdf
  12. 谐波叠加法matlab,谐波叠加法 可运行程序,分享不谢
  13. Java的多态性以及Annotion注解
  14. 【Python报错】MemoryError
  15. vue-element-admin 后台管理系统
  16. MIT 线性代数导论 第十九、二十讲:行列式公式、代数余子式、克拉默法则
  17. 一网打尽:指针和数组
  18. 使用Word脚注、尾注给论文添加参考文献并将编号修改成[1]的方法
  19. 鼠标右键失灵java_全百科鼠标助手
  20. 小丁带你走进git的世界二-工作区暂存区分支

热门文章

  1. 项羽ol网站服务器,《项羽ol》4千万平米无缝地图带你飞
  2. 闲聊互联网经济的现代化
  3. Mol Cell Proteomics. |陈洁| 整合鸟枪法蛋白质组学中鉴定和定量的错误率
  4. 2015.3.30第一次博客测试
  5. IT 路,梦里思路长。
  6. 惠普电脑BIOS设置图文详细介绍
  7. 《三国演义》与“项目管理”——从诸葛亮舌战群儒看商务谈判
  8. python环境IDLE下载
  9. android 蓝牙设备断开,android – 如何检查设备的蓝牙连接是否断开?
  10. sql server 数据库中null 转换为 0