1. I am working on application where I need to collect accelerometer and location data & send them over web-server. I have to collect the data on sensor changed event. Right now I am trying to collect it when I click on start button, but somehow I don't see that data getting stored in my file. Could anyone help me with this ?
2. I have to send this data to MySQL database for processing (on web-server). How will I send the data over to server? Here is what I have tried right now : package myapp; import java.io.*; import java.util.ArrayList; import java.util.List; import app.AccelLocData; import com.google.android.gms.maps.*; import com.google.android.gms.maps.GoogleMap.OnMapClickListener; import android.annotation.SuppressLint; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesUtil; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; public class MapViewActivity extends Activity implements LocationListener, SensorEventListener, OnClickListener { GoogleMap googleMap; private boolean started = false; private ArrayList<AccelLocData> sensorData; private SensorManager sensorManager; private Button btnStart, btnStop; private String provider; // private Button btnUpload; @SuppressLint("NewApi") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); sensorData = new ArrayList<AccelLocData>(); btnStart = (Button) findViewById(R.id.btnStart); btnStop = (Button) findViewById(R.id.btnStop); btnStart.setOnClickListener(this); btnStop.setOnClickListener(this); btnStart.setEnabled(true); btnStop.setEnabled(false); int status = GooglePlayServicesUtil .isGooglePlayServicesAvailable(getBaseContext()); if (status != ConnectionResult.SUCCESS) { // Google Play Services are // not available int requestCode = 10; Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status, this, requestCode); dialog.show(); } else { // Google Play Services are available googleMap.setOnMapClickListener(new OnMapClickListener() { @Override public void onMapClick(LatLng latLng) { // Creating a marker MarkerOptions markerOptions = new MarkerOptions(); // Setting the position for the marker markerOptions.position(latLng); // Setting the title for the marker. // This will be displayed on taping the marker markerOptions.title(latLng.latitude + " : " + latLng.longitude); // Clears the previously touched position googleMap.clear(); // Animating to the touched position googleMap.animateCamera(CameraUpdateFactory .newLatLng(latLng)); // Placing a marker on the touched position googleMap.addMarker(markerOptions); } }); // Enabling MyLocation Layer of Google Map googleMap.setMyLocationEnabled(true); LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); Criteria criteria = new Criteria(); provider = locationManager.getBestProvider(criteria, true); Location location = locationManager.getLastKnownLocation(provider); if (location != null) { onLocationChanged(location); } locationManager.requestLocationUpdates(provider, 20000, 0, this); } } public void onSensorChanged(SensorEvent event) { if (started) { double x = event.values[0]; double y = event.values[1]; double z = event.values[2]; long timestamp = System.currentTimeMillis(); LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setPowerRequirement(Criteria.POWER_MEDIUM); criteria.setAccuracy(Criteria.ACCURACY_FINE); provider = locManager.getBestProvider(criteria, true); Location location = locManager.getLastKnownLocation(provider); double latitude = 0; double longitude = 0; if (location != null) { latitude = location.getLatitude(); longitude = location.getLongitude(); } AccelLocData data = new AccelLocData(timestamp, x, y, z, latitude, longitude); // System.out.println("Accel Data:" + data.toString()); // System.out.println("Latitude:" + latitude); // System.out.println("Longitude:" + longitude); sensorData.add(data); } } @Override public void onLocationChanged(Location location) { TextView tvLocation = (TextView) findViewById(R.id.tv_location); // Getting latitude of the current location double latitude = location.getLatitude(); // Getting longitude of the current location double longitude = location.getLongitude(); // Creating a LatLng object for the current location LatLng latLng = new LatLng(latitude, longitude); // Showing the current location in Google Map googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); // Zoom in the Google Map googleMap.animateCamera(CameraUpdateFactory.zoomTo(15)); System.out.println("Latitude:" + latitude + ", Longitude:" + longitude); // Setting latitude and longitude in the TextView tv_location // tvLocation.setText("Latitude:" + latitude + ", Longitude:" + // longitude); } @Override public void onProviderDisabled(String arg0) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override public void onAccuracyChanged(Sensor arg0, int arg1) { // TODO Auto-generated method stub } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnStart: btnStart.setEnabled(false); btnStop.setEnabled(true); // btnUpload.setEnabled(false); // sensorData = new ArrayList<AccelLocData>(); // save prev data if available started = true; try { File root = android.os.Environment .getExternalStorageDirectory(); File dir = new File(root.getAbsolutePath() + "/myapp"); dir.mkdirs(); File sensorFile = new File(dir, "acc.txt"); // sensorFile.createNewFile(); FileOutputStream fOut = new FileOutputStream(sensorFile); ObjectOutputStream myOutWriter = new ObjectOutputStream(fOut); System.out.println("Sensor data size:"+sensorData.size()); for(int i=0;i<sensorData.size();i++){ System.out.println("Sensor Data:" + sensorData.get(i).getX()); } myOutWriter.writeObject(sensorData); myOutWriter.close(); fOut.close(); } catch (Exception e) { } Sensor accel = sensorManager .getDefaultSensor(Sensor.TYPE_ACCELEROMETER); sensorManager.registerListener(this, accel, SensorManager.SENSOR_DELAY_FASTEST); break; case R.id.btnStop: btnStart.setEnabled(true); btnStop.setEnabled(false); // btnUpload.setEnabled(true); started = false; sensorManager.unregisterListener(this); // don't need chart // openChart(); // show data in chart break; // case R.id.btnUpload: // break; default: break; } } } -- -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.