Autore Topic: SensorManager  (Letto 1294 volte)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
SensorManager
« il: 05 Aprile 2011, 15:55:53 CEST »
0
Ho creato un servizio che controlla quando il terminale è messo a faccia sotto ecco il codice :
Codice (Java): [Seleziona]
public class MyLocalService extends Service implements SensorEventListener{
        @Override
        public void onCreate() {
                super.onCreate();
                sensor_manager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
                accelerometro = sensor_manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
                sensor_manager.registerListener((SensorEventListener)this, accelerometro, SensorManager.SENSOR_DELAY_FASTEST);
                Toast.makeText(this, "Service partito", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onDestroy() {
                sensor_manager.unregisterListener(this);
                Toast.makeText(getBaseContext(),"Service fermato", Toast.LENGTH_SHORT).show();
                super.onDestroy();
        }

        @Override
        public IBinder onBind(Intent arg0) {
                return null;
        }
       
        //#### SENSORE ####
        @Override
        public void onAccuracyChanged(Sensor arg0, int arg1) {
               
        }

        @Override
        public void onSensorChanged(SensorEvent s_event) {
                float x = s_event.values[0];
                float y = s_event.values[1];
                float z = s_event.values[2];
                if((x==0)&&(y==0)&&(z==+9.81)){
                        Toast.makeText(getBaseContext(), "Faccia sotto", Toast.LENGTH_SHORT).show();
                }else{
                        Toast.makeText(getBaseContext(),"NON faccia sotto", Toast.LENGTH_SHORT).show();
                }
        }
       
c'è un problema però perchè quando avvio il servizio mi va in loop nel metodo onSensorChanged eppure il telefono è fermo poggiato sul tavolo....ma questo metodo viene richiamato in continuazione anche se il telefono non viene spostato. Sapete quale può essere il problema ? Poi le coordinate che ricavo x,y e z hanno sempre lo stesso valore anche se muovo il telefono...

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re: SensorManager
« Risposta #1 il: 06 Aprile 2011, 08:31:02 CEST »
0
Risolto vedevo i dati tramite toast invece nel log erano esatti...

Sent from my GT-I9000 using Tapatalk