Autore Topic: Leggere valore di un Sensore  (Letto 1839 volte)

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
Leggere valore di un Sensore
« il: 14 Marzo 2012, 08:47:19 CET »
0
Salve ragazzi,
volevo sapere se era possibile leggere i valori di un sensore(in questo caso quello di temperatura) in un qualsiasi momento.....senza regisrare un listener e aspettare che ci sia un cambiamento....cioè tipo faccio partire la mia applicazione e leggo il valore del sensore...poi dopo 2 minuti rileggo tale valore-....è una cosa fattibile?

Offline AliceInWonderland

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: +1
    • Github
    • Google+
    • Raffaella Pivetta
    • pivetta.raffaella@hotmail.it
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy nexus ( android 4.3 )
  • Sistema operativo:
    window 7
Re:Leggere valore di un Sensore
« Risposta #1 il: 03 Maggio 2012, 11:33:51 CEST »
0
io farei cosi:

prendo la lista dei sensori del device
Codice (Java): [Seleziona]
private List<String> getListNameSensor() {
                try {
                        List<Sensor> listSensor = sensorManager().getSensorList(
                                        Sensor.TYPE_ALL);
                        if (listSensor != null) {
                                List<String> listSensorName = new ArrayList<String>();
                                for (Sensor sensor : listSensor) {
                                        try {
                                                listSensorName.add(sensor.getName());
                                        } catch (Exception e) {
                                                IuLog.Error(e);
                                        }
                                }
                                return listSensorName;
                        }


        private SensorManager sensorManager() {
                try {
                        return mSensorManager = (SensorManager) this
                                        .getSystemService(this.SENSOR_SERVICE);
                } catch (Exception e) {
                        IuLog.Error(e);
                }
                return null;
        }

ti ritorna una Collection<String> sensor... a questo punto cerchi il sensore di temperatura all'interno della lista SENSOR_TEMPERATURE
SensorManager | Android Developers
io proverei a  svolge questo metodo magari dentro un thread che metti attivi quando deve leggere la temperatura e poi lo metti in sleep fai un ciclo infinito e quando chiudi l'applicazione killi il thread e fai finire il ciclo... non so se funziona prova
Raffaella

Offline AliceInWonderland

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: +1
    • Github
    • Google+
    • Raffaella Pivetta
    • pivetta.raffaella@hotmail.it
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy nexus ( android 4.3 )
  • Sistema operativo:
    window 7
Re:Leggere valore di un Sensore
« Risposta #2 il: 03 Maggio 2012, 11:37:54 CEST »
0
scusa non mettere nel catch (Exception e)
Codice (Java): [Seleziona]
      IuLog.Error(e);
               

ma giusto

Codice (Java): [Seleziona]
e.printStackTrace();
quella che richiamavo era un metodo di una classe scritta da me che non t serve sorry
Raffaella

Offline Pinnolo

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
Re:Leggere valore di un Sensore
« Risposta #3 il: 21 Settembre 2012, 07:34:39 CEST »
0
Ragazzi metto in risalto questo topic perchè ho un problema molto simile, nel senso che vorrei ottenere i valori dell' accelerometro e salvarli in variabili d' ambiente ma senza avere un onSensorChanged(Event e), poichè ridefinendo tale metodo ottengo valori ad ogni variazione dell' accelerometro stesso. A me serviva ottenere i valori in un certo istante (per esempio alla pressione di un button, o più specificatamente nel mio caso, ogni minuto (ma per questo avevo già pensato di utilizzare un timertask)). Vi ringrazio anticipatamente per eventuali risposte ;)