我正在使用这段代码在我的服务中跟踪电池信息:
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%以来已经过去了多长时间。
ACTION_BATTERY_CHANGED
之后再次标记吗?而且你真的知道这个BroadcastReceiver
会在Service
中工作吗?它在我的Activity中工作(显示日志等)。 - whiteLTpublic void onReceive(Context context, Intent intent){ ..... int level = i.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); a=level; }
当我尝试在OnReceive之外访问a时,我总是得到0,为什么无法在OnReceive方法之外访问它? - whiteLT