//Gives current batterie temperature in celsius
public void getBatteryTemperature()
{
BroadcastReceiver BatterieTemperatureReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int batTemp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0)/10;
//optional Log output for debug
Log.i("batterietemperature", String.valueOf(batTemp) + "°C");
}
};
this.getContext().registerReceiver(BatterieTemperatureReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
//Gives current batterie level in percent
public void getBatteryLevel()
{
BroadcastReceiver BatterieLevelReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int batLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL,0);
//optional Log output for debug
Log.i("BatterieLevel", "Level " + batLevel + "%");
}
};
this.getContext().registerReceiver(BatterieLevelReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
此方法在我的Main中被调用,但是在开发时我问自己是否可以多次注册接收者?还是会引起麻烦?做这样的事情感觉有点不好... 我希望这里允许这样的问题:)
答案 0 :(得分:0)
我不明白为什么您不能将它们连接在一起并创建BatteryInfoReceiver
,将其注册一次并同时提取温度和剩余果汁的数量。
不过,您的方法似乎还不错。调用两个接收器的开销可以忽略不计,以字节为单位,系统必须记住两个不同的接收器而不是两位数的存储量。
最后,如果可行,我将其保留为=)