Android电池温度和电压值错误
我已经测试了这段代码。在两部手机上,工作正常,给我正确的值。在平板电脑上,相同代码返回的温度值为0,电压值为3个错误值 有人能帮我理解这一点吗?我尝试的每一个代码都返回该值 谢谢Android电池温度和电压值错误,android,battery,temperature,Android,Battery,Temperature,我已经测试了这段代码。在两部手机上,工作正常,给我正确的值。在平板电脑上,相同代码返回的温度值为0,电压值为3个错误值 有人能帮我理解这一点吗?我尝试的每一个代码都返回该值 谢谢 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View rootView = inflater.inflate(R.layout.battery_fragment1, container, false);
rootView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT ));
getActivity().registerReceiver(mBatInfoReceiver, new IntentFilter(
Intent.ACTION_BATTERY_CHANGED));
BatTemp=(TextView)rootView.findViewById(R.id.batteryStatus);
return rootView;
}
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent intent) {
level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
health = intent.getIntExtra(BatteryManager.EXTRA_HEALTH, 0);
// icon_small = intent.getIntExtra(BatteryManager.EXTRA_ICON_SMALL, 0);
plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0);
present = intent.getExtras().getBoolean(
BatteryManager.EXTRA_PRESENT);
scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 0);
status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, 0);
technology = intent.getExtras().getString(
BatteryManager.EXTRA_TECHNOLOGY);
temperature = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,
-1);
voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, 0);
// pb.setProgress(level);
BatTemp.setText("Level: " + level + "\n\n" + "Health: " + health + "\n\n"
+ "\n\n" +
"Plugged: " + plugged + "\n\n" + "Present: " + present + "\n\n"
+ "Scale: " + scale + "\n\n" + "Status: " + status + "\n\n"
+ "Technology: " + technology + "\n\n" + "Temperature: "
+ temperature + "\n\n" + "Voltage: " + voltage + "\n\n");
}
};
可能有些设备返回V,而不是mV。 我用这个:
float v = (float) voltage;
if (voltage > 12)
v = (float) voltage / 1000;
float t = (float) temp / 10;
可能是Shabbir的复制品,我已经看到了这个主题,但问题是我看到了所有的代码,但无法理解为什么它可以在这两台设备上工作,而不能在平板电脑上工作。有什么想法吗?谢谢