我正在使用此代码来跟踪我的服务中的电池信息:
Intent i = new ContextWrapper(applicationContext).registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// now you can get the level and scale from this intent variable
int level = i.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = i.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float battPct = level/(float)scale;1.我想知道更换电池后是否会自动更换?或者我需要自己定期触发这个意图? 2.另外,我想知道是否有一种方法可以计算出从剩余电池的1%使用到现在已经过去了多少时间。
发布于 2013-03-10 01:33:30
获取变化值的更好的方法你应该使用
BroadcastReceiver。
当电池更换时,获取更改后的值。您需要使用BroadCastReceiver。
IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryLevelReceiver, batteryLevelFilter);
BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent){
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float battPct = level/(float)scale;
}
};发布于 2021-12-19 16:11:32
下面的内容对我很有效:
在清单文件中,找到**<activity android:name=".MainActivity">**并替换为***<activity android:name=".MainActivity" android:exported="true">***
https://stackoverflow.com/questions/15313758
复制相似问题