Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
No a má tvůj telefon příslušný senzor?
Wikan 28.07.2023 14:17
Wikan
Každý telefon musí mít nějaké teplotní čidlo .
Víťa 28.07.2023 14:20
Víťa
Nějaké ano, ale to ještě neznamená, že se z něj dá programově zjistit teplota.
Wikan 28.07.2023 14:22
Wikan
Třeba tady [97396-screenshot-2023-07-29-09-03-29-4-jpg] přečíst tuto teplotu sensoru
Víťa 29.07.2023 09:12
Víťa
To je ale teplota baterky a ne okolí. IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY…
Wikan 29.07.2023 11:06
Wikan
Já vím že to teplota baterky i to čidlo bych si mohl vyčíst například ve své apce díky
Víťa 29.07.2023 11:17
Víťa
Kód jsem tam přidal.
Wikan 29.07.2023 11:18
Wikan
Otázka je kde ho umístit ten tvůj kód ? [97398-teplotabaterie-jpg] tady to nefunguje aplikace se zhr…
Víťa 31.07.2023 13:13
Víťa
No kdybys radši napsal, s jakou chybou se to zhroutilo.
Wikan 31.07.2023 13:14
Wikan
Chyba 2023-07-31 13:18:16.971 3977-3995/? E/FA: Discarding data. Failed to send app launch 2023-07-3…
Víťa 31.07.2023 13:20
Víťa
Proč jsi tam dal ten řádek: Context context = null; ?
Wikan 31.07.2023 13:36
Wikan
když to zakomentuji tak je tam chyba :-/ [97399-context-jpg]
Víťa 31.07.2023 13:41
Víťa
Tak jsi měl řešit tu chybu. Uprav ten řádek na: Intent batteryStatus = this.registerReceiver(null,…
Wikan 31.07.2023 13:50
Wikan
A jak výsledek vypsat float celsiusTemperature = (float) (tem / 10.0); do textView.setText() ? díky
Víťa 31.07.2023 14:11
Víťa
textView.setText(celsiusTemperature + " °C");
Wikan 31.07.2023 14:16
Wikan
package cz.vs.teplota; //https://www.youtube.com/watch?v=JKuTnuUsKOI&ab_channel=SarthiTechnology imp…
Víťa 31.07.2023 14:39
Víťa
Protože to pleteš dohromady s původním kódem, který ve tvém případě vůbec nedává smysl. Smaž všechny…
Wikan 31.07.2023 14:50
Wikan
Trochu se mě to rozchází podle [97396-screenshot-2023-07-29-09-03-29-4-jpg] díky
Víťa 31.07.2023 21:15
Víťa
Ale co to konkrétně znamená, to už nenapíšeš, co?
Wikan 31.07.2023 21:49
Wikan
Lítá mi to o 1 stupeň nahoru a dolů než v té výše uvedené aplikaci díky
Víťa 01.08.2023 09:28
Víťa
To bude nejspíš zaokrouhlováním.
Wikan 01.08.2023 10:00
Wikan
To by nebyl Víťa, aby neřešil takovou odchylku :-) poslední
Lukas1982 01.08.2023 10:09
Lukas1982

To je ale teplota baterky a ne okolí.

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);

int temperature = batteryStatus.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
if (temperature != -1) {
    float celsiusTemperature = temperature / 10.0;
}
package cz.vs.teplota;
//https://www.youtube.com/watch?v=JKuTnuUsKOI&ab_channel=SarthiTechnology
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.BatteryManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements SensorEventListener {
    private TextView textView;
    private SensorManager sensorManager;
    private Sensor tepmSensor;
    private boolean tenperature;
    private float tem,celsiusTemperature;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textViwer);
        IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        //Context context = null;
        Intent batteryStatus = this.registerReceiver(null, ifilter);

        int tem = batteryStatus.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
        if (tem != -1) {
           float celsiusTemperature = (float) (tem / 10.0);
        }
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        if (sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE) != null) {
            tepmSensor = sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
            tenperature = true;
        } else {
            textView.setText("Temperature Sensor is not Avaliable");
            tenperature = false;
        }
    }

    @Override
    public void onSensorChanged(SensorEvent sensorEvent) {
        //textView.setText(sensorEvent.values[0]+" °C");
         textView.setText(celsiusTemperature + "C");
    }

    @Override
    protected void onPostResume() {
        super.onPostResume();
        if (tenperature){
            sensorManager.registerListener(this,tepmSensor,SensorManager.SENSOR_DELAY_NORMAL);
        }
    }

    @Override
    protected void onPause() {
        super.onPause();
        if (tenperature){
            sensorManager.unregisterListener(this);
        }
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int i) {

    }
}

ještě je tam někde chyba pořád to ukazuje Temperature Sensor is not Avaliable" na fyzickém mobilu :-( díky

Protože to pleteš dohromady s původním kódem, který ve tvém případě vůbec nedává smysl.
Smaž všechny metody kromě onCreate a tu uprav následovně:


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView = findViewById(R.id.textViwer);

    IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    Intent batteryStatus = this.registerReceiver(null, ifilter);

    int tem = batteryStatus.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
    if (tem != -1) {
       float celsiusTemperature = tem / 10.0f;
       textView.setText(celsiusTemperature + " °C");
    }
}

Zpět do poradny Odpovědět na původní otázku Nahoru