Autore Topic: Service per GPS e Accelerometro.  (Letto 777 volte)

Offline GenzoD

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
Service per GPS e Accelerometro.
« il: 14 Settembre 2012, 22:23:08 CEST »
0
Ciao a tutti.
Ho un problema riguardo il titolo di cui sopra. Nella fattispecie, quando avvio il servizio e poi lo termino, non mi stampa il this.acc e il this.gps (sono stringhe come vedete da codice). I permessi sono apposto, tant'è che il tempo (Timestamp) viene stampato correttamente. Non riesco a individuare il problema..magari qualcuno più esperto può individuarlo.

Vi ringrazio in anticipo.

P.S. L'interfaccia GPSAcc sfrutta l'eredità multipla per quanto concerne il Gps e l'Acc.

Codice: [Seleziona]
import java.io.IOException;
import java.sql.Timestamp;
import java.util.Date;

import Read_Write.Salvataggio;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorManager;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

public class ServizioGpsAcc extends Service implements GPSACC {
       
        private String acc;
        private Timestamp time;
        private String gps;
        private String tot;

        public void onLocationChanged(Location location) {
                // TODO Auto-generated method stub
                gps = new String();
                if (location != null) {
                        Log.d("LOCATION CHANGED", location.getLatitude() + "");
                        Log.d("LOCATION CHANGED", location.getLongitude() + "");
                        gps = location.getLatitude() +
                                        "#" + location.getLongitude() +
                                        "#" + location.getAltitude() +
                                        "#"+ location.getAccuracy() +
                                        "\n";
                        }
        }

        public void onProviderDisabled(String arg0) {
                // TODO Auto-generated method stub
                Toast.makeText(this,"Error onProviderDisabled",Toast.LENGTH_LONG).show();
               
        }

        public void onProviderEnabled(String arg0) {
                // TODO Auto-generated method stub
                Toast.makeText(this,"onProviderEnabled",Toast.LENGTH_LONG).show();

               
        }

        public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
                // TODO Auto-generated method stub
                Toast.makeText(this,"onStatusChanged",Toast.LENGTH_LONG).show();
               
        }

        public void onAccuracyChanged(Sensor sensor, int accuracy) {
                // TODO Auto-generated method stub
               
        }

        public void onSensorChanged(SensorEvent event) {
                // TODO Auto-generated method stub
                        acc = new String();
                                if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){
                                        float x = event.values[0];
                                        float y = event.values[1];
                                        float z = event.values[2];
                                       
                                        acc = String.valueOf(x) + "#" + String.valueOf(y) + "#" + String.valueOf(z);
                                }
               
        }

        @Override
        public IBinder onBind(Intent arg0) {
                // TODO Auto-generated method stub
                return null;
        }
       
        public void tempo(){
                Date temp = new Date();
                Timestamp currency = new Timestamp(temp.getTime());
                time = currency;
        }
       
        public String toString(){
                return time + "\n" + gps + "\n" + acc;
        }
       
        public void onCreate(){
                super.onCreate();
                LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
                lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
                SensorManager sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
                sensorManager.registerListener(this,
                                sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                                SensorManager.SENSOR_DELAY_NORMAL);
               
                this.tempo();
               
                tot = new String();
                tot = this.toString();
                                                               
        }
       
        public void onDestroy(){
                super.onDestroy();
                Salvataggio tmp = new Salvataggio("File_Log");
                tot += "\n" + "####";
                try {
                        tmp.salva(tot);
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               
        }

}

« Ultima modifica: 14 Settembre 2012, 22:50:03 CEST da GenzoD »