【发布时间】:2019-11-02 17:20:47
【问题描述】:
我从未做过任何与电池有关的事情。所以,我对它完全陌生。我的应用程序中有一个广播,通过它我接收和发送消息并执行特定任务。现在我的任务之一是检查电池电量是否低于 20% 或 15%,执行一些任务。我不知道如何将该检查 :( 在我的广播文件中。提前感谢您的帮助:)。
更新我的问题: 到目前为止,我已经这样做了
public class BatteryBroadcastReceiver extends BroadcastReceiver {
DatabaseHelper db;
@Override
public void onReceive(Context context, Intent intent) {
db = new DatabaseHelper(context);
String cont1 = db.usercontact().toString();
String action = intent.getAction();
if (action != null && action.equals(Intent.ACTION_BATTERY_CHANGED)) {
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL,-1);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE,-1);
int percentage = level * 100 / scale;
if(percentage <= 20){
// doing something like getting location
}
}
}
我已经在活动中注册了我的广播:
public class Battery extends AppCompatActivity {
private BatteryBroadcastReceiver batteryReceiver = new BatteryBroadcastReceiver();
private IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auto_location);
}
@Override
protected void onResume(){
super.onResume();
registerReceiver(batteryReceiver,intentFilter);
}
@Override
protected void onPause(){
unregisterReceiver(batteryReceiver);
super.onPause();
}
}
这段通用代码工作正常,但它限制我只能进行此活动(可能是因为在此活动中注册了广播)。就像只要此活动保持打开状态,我就可以执行某些任务,但是当我关闭它时,当电池电量不足时,它不会执行任何任务。现在我不知道该怎么办。我的应用程序中还有其他活动,即使我不在此活动中,我也希望它能够工作。可能吗 ?
【问题讨论】:
标签: android batterylevel