0

我想了解更多关于 Android 服务/广播的信息,所以我开始了一个简单的项目,创建一个电池监控应用程序。结果还不错,我用了几天了,但我想添加一个新功能:显示手机从什么时候开始充电/放电。

首先,我想我会在我的 BoradcastReciever 扩展类中创建两个静态字段,在那里我获取并发布有关电池的数据,一个用于实际状态(充电/放电),另一个用于状态变化发生时的时间. 这样,我可以从当前时间中减去最后一次更改,并准确知道手机从什么时候开始充电/放电。

但是这个解决方案有一个问题:当用户启动应用程序时,它一开始不会显示正确的数据。我不会大惊小怪,但我看到 Android 在某处跟踪这些数据,因为在我的手机设置中我找到了这些信息,所以为什么要采取艰难的方式。

所以我的问题是: 有没有一种简单的方法可以从 Android 系统中获取上次充电状态更改的日期/时间(无论是什么格式)?

我查看了BatteryManager 参考,但没有以我所寻求的内容命名的常量,我可以使用它来从接收器的 Intent 获取信息。

4

1 回答 1

1

Android 操作系统会跟踪电源的连接/断开连接,但不会让应用程序访问这些数据。您必须使用意图过滤器自己记录这一切。

要使用的两个意图过滤器是android.intent.action.ACTION_POWER_CONNECTEDandroid.intent.action.ACTION_POWER_DISCONNECTED; 有了这些,您可以监控电源何时连接和断开。

你可以在这里找到关于这个过程的信息,解释得非常清楚。可以在此处找到另一个描述该过程的博客。

于 2012-08-06T23:07:40.023 回答