在我的应用程序中,我想在低于30%,20%和10%的电池电量下执行一些操作。 用户可以选择上述任何一种电池电量来执行操作。
我的问题是,如何确定电池电量 30%或20%或10%才能完成我的工作?
我已在清单文件中注册了电池广播接收器,如下所示。
<receiver android:name=".BatteryLevelReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_BATTERY_LOW"/>
<action android:name="android.intent.action.ACTION_BATTERY_OKAY"/>
</intent-filter>
</receiver>
但我不知道我的接收器类什么时候(在什么电池级别上)会收到它? 或以其他方式何时触发ACTION_BATTERY_LOW意图(在什么电池级别)?
请帮忙!
答案 0 :(得分:0)
请检查this answer
上面这部分答案应该回答你的问题:
mLowBatteryWarningLevel = mContext.getResources().getInteger(
com.android.internal.R.integer.config_lowBatteryWarningLevel);
它会告诉你这个设备的特定阈值,但是你无法改变它!
答案 1 :(得分:0)
请参阅documentation。
您可以注册一个ACTION_BATTERY_CHANGED
接收器,并读出附加内容,例如:
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPct = level / (float)scale;
然后,您可以在batteryPct
上采取行动,无论是10%,20%,30%。
if( batteryPct <= 10 ) {
// do 10% actions
} else if( batteryPct <= 20 ) {
// do 20% actions
} else if( batteryPct <= 30 ) {
// do 30% actions
} else {
// do nothing
}
一定要记下你做过的事情,所以你不要继续做这些事情,不论是10%,9%,8%等等。