首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓BatteryManager替代品

安卓BatteryManager替代品
EN

Stack Overflow用户
提问于 2015-06-09 14:31:51
回答 3查看 1.8K关注 0票数 8

我正试图在我的应用程序中获得电池统计数据,以便进行基准测试。美妙的BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER让我可以查询设备的微安培,这是很棒的。然而,这仅仅是在API 21中引入的,所以它能够到达的设备数量是相当有限的。在API的较低版本(下降到4.0)中,是否有兼容的方法来执行类似的操作?我知道BatteryManager.EXTRA_LEVEL会给出百分比,但这并不是细粒度的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-28 00:14:59

据我所知,使用旧的公共API无法做到这一点。我开发了一个系统级的应用程序,它向用户显示电池使用情况。我的代码是基于应用程序的,我的用户可能需要root访问,或者应用程序必须使用平台密钥进行签名。您可以查看PowerUsageDetailBatteryInfoPowerUsageSummary类。如果幸运的话,您可以使用JAVA反射访问隐藏的API。否则,您需要平台键或根。内部API的变化非常频繁,因此使用起来非常痛苦。

还有几个工具您可能需要查看:

Dumpsys的源代码

祝好运!

编辑:

我的旧计划可能对你有用。

票数 11
EN

Stack Overflow用户

发布于 2015-07-31 13:17:13

今年早些时候,我遇到了一篇有趣的文章,讲述了一种只根据智能手机耗电量来定位智能手机的方法,叫做PowerSpy

虽然我本人从未实现/测试过该方法,但作者声称:

在Android上,通过反复读取以下两个文件来读取手机的总功率表: /sys/class/power_supply/battery/voltage_now /sys/class/power_supply/battery/current_now

他们还声称已经在Nexus 4、Nexus 5和HTC上测试了这种方法。虽然这并没有具体说明设备配备了哪个版本的Android,但Nexus 4应该配备API级别17,Nexus 5应该配备API级别19,但这两款手机似乎都要进行操作系统升级。

然而,与其他海报提到的方法相比,这似乎是一种完全不同的方法,因此可能值得一提。不幸的是,这似乎是一个低水平的方法,所以可能需要大量的工作才能得到你所需要的,因为电力,如物理,并不意味着真正的电池消耗。但也许你需要这样。

最后,文章提到了对这两个文件的访问不需要特殊的权限(这是他们最初所做的研究的动机)。

编辑

第二个想法是,如果你绘制了P=U*I (得到上面提到的U和我),并随着时间的推移进行集成(在这个离散的情况下,这将是一个和),你可能只是得到了电池消耗的一个非常好的近似。也许你还考虑了一个卡尔曼滤波器(为了减弱U和I上的噪音,记住你的算法不是唯一的消费者),你可能只是得到你想要的东西。

票数 4
EN

Stack Overflow用户

发布于 2015-07-30 06:51:30

根据电池监控培训http://developer.android.com/training/monitoring-device-state/battery-monitoring.html,您可以使用以下方法获取当前电池信息:

代码语言:javascript
复制
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPct = level / (float)scale;

请注意,您需要继续重复调用它以获得更新的电池级别。当你唤醒你的应用程序并检查它时,他们建议:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30735069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档