【发布时间】:2012-04-24 22:12:35
【问题描述】:
我在这里遇到了一个小问题。
我希望我的应用做某事,但前提是电池电量为 10%。
我的应用不会持续观察电池电量;它只是等待 LOW_BATTERY 意图。
如果我不指定级别,它会起作用,但它会起作用 3 次:15%、10% 和 5%
我只希望它以 10% 的速度做某事。
这是我的代码:
public void onReceive(Context context, Intent intent)
{
if(intent.getAction().equals(ACTION_BATTERY_LOW))
{
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100);
int percent = (level*100)/scale;
if(percent == 10)
{
// Do Something
}
}
}
【问题讨论】:
-
我从来没有处理过电池电量,但为什么不接受三个通知,在每个通知中测试电池电量,只有在 10% 时才行动?
-
除了 Sam 的评论之外,请记住,不能保证您将获得正好 10% 的广播。特定设备可以轻松地以 11% 的频率广播,然后再以 9% 的频率广播。
-
致 Sam:嘿,这正是我所做的!我收到关于低电量的通知,然后我检查它是否为 10%,然后我做点什么。但它永远不会奏效。也许正如 CommonsWare 建议的那样,我也应该尝试接受 9 和 11 %。我会告诉你 !谢谢 ! ;)
-
它不起作用!我什至尝试过“if(percent>8 && percent
-
只检查你得到的百分比,而不是说“没用”。如果您对百分比的检索很糟糕并且您得到奇怪的数字,那么这就是您的问题。如果您仅在 7.8% 时被戳中,那么您就是这样。只是在某处调试并写入百分比?然后,如果您确实触发了您的事件,请确保您设置了某种标志,它不会触发两次?
标签: android android-intent power-management