Sensoren bzw Infos auslesen.

C

coreytaylor211

Fortgeschrittenes Mitglied
5
Hallo ich habe eine kurze Frage bezüglich der Akku,Cpu und umgebungs Temp.
Wie frage ich die Daten ab ?
Egal was ich mache bei mir steht immer 0 :)

Hier mal ein Beispiel für die Akku Temp.

Code:
temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);

Ist das so richtig ?
 
Hallo, der weg ist ein wenig anders

a)
SensorManager | Android Developers

b) (Beispiel)

Code:
///////////////////////////////////////////////////////////////////////////////////////////////////
public Integer getBatterieLevel(Context con)
{
     Integer level_percent = 0;

     Intent batteryIntent = con.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

     int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
     int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

     // Error checking that probably isn't needed but I added just in case.
     if(level == -1 || scale == -1)
     {
         level_percent = 50;
     }
     else
       level_percent = (int) (((float)level / (float)scale) * 100.0f);


     return level_percent;
}

Quelle :
What is the best way to get battery level on Android without permanently monitoring it ?
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: coreytaylor211
Ahh ok aber das wäre jetzt ein Beispiel für den Akkuladestand.
Ich wollte ja die Spannung b.z.w din Temperatur auslesen.
Is da der weg der selbe ?
 
Das soll ja für dich nur ein Bespiel sein (steht auch so da) um dir die Technik zu verdeutlichen.

Lies dir den Artikel unter a) genau durch - je nach Sensor gibt es verschiedene Techniken und Parameter.
(Reciever, Listener)
Und in deinem Versuch hast du vergessen den Receiver zu registrieren.
Die direkte Abfrage geht so nicht, weil zum Zeitpunkt der Abfrage die werte nicht gültig sind.

Registriere am besten einen BroadcastReceiver (ACTION_BATTERY_CHANGED)
und frage dann erst in OnRecieve deinen Akkustatus ab

Hinweis : nicht jeder Akku hat Temperatur-Sensoren
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: coreytaylor211
Liebe Dank habe es geschafft. Ich habe nur noch ein kleines Problem, wie kann ich die CPU Temperatur und die Auslastung auslesen?
Da kann ich nix drüber finden.

Lieben Dank
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: coreytaylor211
Super geht ohne Probleme hier und da was ändern und alles gut :)
Ja das mit der Temperatur von der CPU bin ich gerade am versuchen ich berichte wenn ich einen Weg gefunden habe.
Über die Ambiente Temperatur hab ich es noch nicht geschafft.
 
So lieben Dank habe alles hingekommen.
Habe das ganze jetzt mit einem File Array gelöst mit Pattern.matches.
 
Herzlichen Glückwunsch ,

Wie wäre es denn mal nach der Hilfe mit deinem fertigen Beispiel für alle hier ???
 
Jo kein Ding :)
Hier mal die Methode
Code:
        private void redCpuTemp() {
            try {
                File[] cpuTempFiles = getCPUTemp();
                textNumOfCpuTemp = cpuTempFiles.length;

                String strFileListTemp = "";
                for (int i = 0; i < cpuTempFiles.length; i++) {
                    String path_temp_cpu = cpuTempFiles[i].getAbsolutePath() + "/temp";

                    cpu_core_temp = cmdCat(path_temp_cpu);
                    try {
                        cpu_core_temp = cpu_core_temp.substring(0, cpu_core_temp.length() - 4);
                    } catch (Exception e) {
                        Toast.makeText(getApplicationContext(), "Funktion wird nicht unterstüzt.", Toast.LENGTH_SHORT);
                    }
                    strFileListTemp += cpu_core_temp + " °C" + "\n";
                }
                textCpuTemp = strFileListTemp;

            } catch (Exception e) {
                String tmp = "Gerät nicht kompatible.";
                textCpuTemp = tmp;
            }

        }

für weitere Fragen einfach ne PM schreiben.
 

Ähnliche Themen

H
Antworten
2
Aufrufe
1.283
Hcman
H
S
Antworten
33
Aufrufe
2.540
Sempervivum
S
C
Antworten
3
Aufrufe
916
sportspirit
sportspirit
Zurück
Oben Unten