2010-10-22 9 views

Respuesta

13

http://developer.android.com/reference/android/os/BatteryManager.html

pública final EXTRA_TEMPERATURE static String
extra para ACTION_BATTERY_CHANGED: entero que contiene la temperatura actual de la batería.

+0

Lo que se acerca ACTION_BATTERY_CHANGED? ¿Tengo que almorzar para obtener la temperatura? ¿Debo escuchar algún intento de todo el sistema? – Christian

+0

Google es tu amigo: http://www.tutorialforandroid.com/2009/01/getting-battery-information-on-android.html Ese tutorial es sobre cómo obtener el nivel de batería pero junto con el enlace de documentos que publiqué , Estoy seguro de que puede averiguar cómo obtener la temperatura de la batería, simplemente use "temperatura" en lugar de "nivel" ... – Select0r

+10

@Christian: No necesita registrar un 'BroadcastReceiver' real si no desea a. Llame a 'registerReceiver (null, new IntentFilter (Intent.ACTION_BATTERY_CHANGED))', y devolverá la última intención que se emitió para esta acción. Use el extra 'EXTRA_TEMPERATURE' para obtener el valor que busca. – CommonsWare

1

tratar de leer el static int BatteryManager.EXTRA_TEMPERATURE

+0

De acuerdo con la documentación, EXTRA_TEMPERATURE pasa a ser una Cadena. También es estático y por lo tanto siempre será "temperatura". – Christian

+0

Es cierto, pero el documento también dice: "Extra para ACTION_BATTERY_CHANGED" - por lo que su cadena estática es solo la clave para obtener la temperatura de ACTION_BATTERY_CHANGED. – Select0r

1
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)); 
     } 
6

Prueba esto:

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); 

    } 

    }; 

luego definir en sus declaraciones de variables:

private mBatInfoReceiver myBatInfoReceiver; 

y en 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)); 

    } 

después de llamar por ejemplo en un OnClickListener()

float temp = myBatInfoReceiver.get_temp(); 

String message = "Current " + BatteryManager.EXTRA_TEMPERATURE + " = " + 
        temp + Character.toString ((char) 176) + " C"; 
4
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"; 
    } 
0

Puede obtener la temperatura del procesador por esta función: obtener la temperatura de la CPU desde un dispositivo Android utilizando el 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; 
    } 
} 

En mi GIST para enviar solicitudes de camiones: https://gist.github.com/sajadabasi/7d76379e82d51efd0a24e5829c3ce572

Cuestiones relacionadas