Run Gps as background service and send coordinates to web server (PHP) Run Gps as background service and send coordinates to web server (PHP) php php

Run Gps as background service and send coordinates to web server (PHP)


Just create a service that runs in the background all the time.

For Example:-

AndroidLocationServices

public class AndroidLocationServices extends Service {WakeLock wakeLock;private LocationManager locationManager;public AndroidLocationServices() {    // TODO Auto-generated constructor stub}@Overridepublic IBinder onBind(Intent arg0) {    // TODO Auto-generated method stub    return null;}@Overridepublic void onCreate() {    // TODO Auto-generated method stub    super.onCreate();    PowerManager pm = (PowerManager) getSystemService(this.POWER_SERVICE);    wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "DoNotSleep");    // Toast.makeText(getApplicationContext(), "Service Created",    // Toast.LENGTH_SHORT).show();    Log.e("Google", "Service Created");}@Override@Deprecatedpublic void onStart(Intent intent, int startId) {    // TODO Auto-generated method stub    super.onStart(intent, startId);    Log.e("Google", "Service Started");    locationManager = (LocationManager) getApplicationContext()            .getSystemService(Context.LOCATION_SERVICE);    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,            5000, 5, listener);}private LocationListener listener = new LocationListener() {    @Override    public void onLocationChanged(Location location) {        // TODO Auto-generated method stub        Log.e("Google", "Location Changed");        if (location == null)            return;        if (isConnectingToInternet(getApplicationContext())) {            JSONArray jsonArray = new JSONArray();            JSONObject jsonObject = new JSONObject();            try {                Log.e("latitude", location.getLatitude() + "");                Log.e("longitude", location.getLongitude() + "");                jsonObject.put("latitude", location.getLatitude());                jsonObject.put("longitude", location.getLongitude());                jsonArray.put(jsonObject);                Log.e("request", jsonArray.toString());                new LocationWebService().execute(new String[] {                        Constants.TRACK_URL, jsonArray.toString() });            } catch (Exception e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }    @Override    public void onProviderDisabled(String provider) {        // 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    }};@Overridepublic void onDestroy() {    // TODO Auto-generated method stub    super.onDestroy();    wakeLock.release();}public static boolean isConnectingToInternet(Context _context) {    ConnectivityManager connectivity = (ConnectivityManager) _context            .getSystemService(Context.CONNECTIVITY_SERVICE);    if (connectivity != null) {        NetworkInfo[] info = connectivity.getAllNetworkInfo();        if (info != null)            for (int i = 0; i < info.length; i++)                if (info[i].getState() == NetworkInfo.State.CONNECTED) {                    return true;                }    }    return false;}}

LocationWebService

public class LocationWebService extends AsyncTask<String, String, Boolean> {public LocationWebService() {    // TODO Auto-generated constructor stub}@Overrideprotected Boolean doInBackground(String... arg0) {    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();    nameValuePairs.add(new BasicNameValuePair("location", arg0[1]));    HttpClient httpclient = new DefaultHttpClient();    HttpPost httppost = new HttpPost(arg0[0]);    HttpParams httpParameters = new BasicHttpParams();    httpclient = new DefaultHttpClient(httpParameters);    try {        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));        HttpResponse response;        response = httpclient.execute(httppost);        StatusLine statusLine = response.getStatusLine();        if (statusLine.getStatusCode() == HttpStatus.SC_OK) {            Log.e("Google", "Server Responded OK");        } else {            response.getEntity().getContent().close();            throw new IOException(statusLine.getReasonPhrase());        }    } catch (Exception e) {        e.printStackTrace();    }    return null;}}

You can find a sample project with Android App and corresponding WebFiles within this github project androidbackgroundgps