取得す温度の電池android
-
10-10-2019 - |
質問
どうやっていけばいいですか?蓄電池温度はスケーラビリティの問題ですね。
解決
これを試して:
private class mBatInfoReceiver extends BroadcastReceiver{
int temp = 0;
float get_temp(){
return (float)(temp / 10);
}
@Override
public void onReceive(Context arg0, Intent intent) {
temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
}
};
次に、変数宣言で定義します。
private mBatInfoReceiver myBatInfoReceiver;
そして、oncreateで:
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
setContentView(R.layout.activity_main);
// ...
// Add this
myBatInfoReceiver = new mBatInfoReceiver();
this.registerReceiver(this.myBatInfoReceiver,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
onclicklistener()で後で呼び出します
float temp = myBatInfoReceiver.get_temp();
String message = "Current " + BatteryManager.EXTRA_TEMPERATURE + " = " +
temp + Character.toString ((char) 176) + " C";
他のヒント
http://developer.android.com/reference/android/os/BatteryManager.html
public static final String EXTRA_TEMPERATURE
プエブロエスパニョACTION_BATTERY_CHANGED:の整数を含む、現在の電池温度です。
public static String batteryTemperature(Context context)
{
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
float temp = ((float) intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0)) / 10;
return String.valueOf(temp) + "*C";
}
TextView BatTemp;
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent)
{
// TODO Auto-generated method stub
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
};
@Override
public void onCreate(Bundle b)
{
super.onCreate(b);
setContentView(R.layout.activity_main);
BatTemp = (TextView) this.findViewById(R.id.textView8);
this.registerReceiver(this.mBatInfoReceiver,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
Static Intを読んでみてください BatteryManager.extra_temperature
所属していません StackOverflow