Come si ottiene la temperatura della batteria in Android?Ottenere la temperatura della batteria su Android
risposta
http://developer.android.com/reference/android/os/BatteryManager.html
public static final String EXTRA_TEMPERATURE
supplementare per ACTION_BATTERY_CHANGED: intero contenente la temperatura della batteria.
provare a leggere la static int BatteryManager.EXTRA_TEMPERATURE
Secondo la documentazione EXTRA_TEMPERATURE sembra essere una stringa. È anche statico e quindi sarà sempre "temperatura". – Christian
Vero, ma il documento dice anche: "Extra per ACTION_BATTERY_CHANGED", quindi la stringa statica è solo la chiave per ottenere la temperatura da ACTION_BATTERY_CHANGED. – Select0r
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));
}
Prova questa:
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);
}
};
poi definire con le dichiarazioni di variabili:
private mBatInfoReceiver myBatInfoReceiver;
e in 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));
}
poi chiama per esempio in un OnClickListener()
float temp = myBatInfoReceiver.get_temp();
String message = "Current " + BatteryManager.EXTRA_TEMPERATURE + " = " +
temp + Character.toString ((char) 176) + " C";
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";
}
È possibile ottenere temperatura della CPU da questa funzione: ottenere la temperatura della CPU da un dispositivo Android utilizzando il comando sys/class/thermal/temp
.
public float getCpuTemp() {
Process process;
try {
process = Runtime.getRuntime().exec("cat sys/class/thermal/thermal_zone0/temp");
process.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = reader.readLine();
float temp = Float.parseFloat(line)/1000.0f;
return temp;
} catch (Exception e) {
e.printStackTrace();
return 0.0f;
}
}
Nel mio succo di inviare richieste di pull: https://gist.github.com/sajadabasi/7d76379e82d51efd0a24e5829c3ce572
- 1. Come accedere alla temperatura della batteria del laptop in Windows?
- 2. Come ottenere la temperatura della CPU?
- 3. Sensore di temperatura su Android
- 4. Quali sono le unità per la temperatura e la tensione della batteria quando Intent.BATTERY_ACTION_CHANGED sul dispositivo Android?
- 5. Come ottenere informazioni sull'utilizzo della batteria Android per applicazione
- 6. Livello batteria su PhoneGap
- 7. ottenere il livello della batteria nel widget Android
- 8. Monitoraggio della temperatura della CPU
- 9. Come ottenere temperatura ambiente dal sensore di temperatura Arduino Lilypad
- 10. Batteria Android nell'SDK
- 11. OpenGL su Android è un killer della batteria?
- 12. Notifiche push pubnub e durata della batteria su Android
- 13. Android ottiene la capacità di corrente della batteria in mA e la capacità totale della batteria in mAh
- 14. Come ottenere il corretto livello della batteria e lo stato della batteria-ios?
- 15. Stato di lettura della batteria su Linux/Ubuntu utilizzando QT
- 16. Uso ottimale della batteria
- 17. Come leggere il numero di cariche della batteria?
- 18. Utilizzo dei sensori lm per ottenere la temperatura
- 19. Uso della batteria, cosa aspettarsi?
- 20. Rapporto sull'utilizzo della batteria Android per gli sviluppatori
- 21. Websockets rispetto a GCM sotto Android: utilizzo della batteria?
- 22. Come ottenere la direzione della bussola da azimut su Android
- 23. Android il modo migliore per ottenere la posizione ripetutamente in background considerando anche la batteria
- 24. ottiene la temperatura della CPU su linux ubuntu 12.10 con AMD FX 4100 Quad Core
- 25. Accesso alla temperatura della CPU in python
- 26. Come modificare lo spazio utilizzato dall'icona della batteria su iPhone?
- 27. Come ottenere il livello della batteria in tempo reale su iOS con una granularità 1%
- 28. Come simulare la batteria scarica nei dispositivi Android
- 29. iPhone GPS - Drenaggio della batteria estremamente veloce
- 30. Come ottenere il livello della batteria di un auricolare Bluetooth su Mac OSX
Cosa si ACTION_BATTERY_CHANGED circa? Devo pranzare un intento per ottenere la temperatura? Devo ascoltare qualche intento del sistema? – Christian
Google è tuo amico: http://www.tutorialforandroid.com/2009/01/getting-battery-information-on-android.html Quel tutorial parla di come ottenere il livello della batteria, ma insieme al link docs che ho postato , Sono sicuro che puoi capire come ottenere la temperatura della batteria, basta usare "temperatura" invece di "livello" ... – Select0r
@Christian: non è necessario registrare un vero 'BroadcastReceiver' se non si desidera a. Chiama 'registerReceiver (null, new IntentFilter (Intent.ACTION_BATTERY_CHANGED))', e restituirà l'ultimo Intent che è stato trasmesso per questa azione. Usa l'extra 'EXTRA_TEMPERATURE' per ottenere il valore che cerchi. – CommonsWare