2016-07-01 24 views

Antwort

4

einen Alarmdienst verwenden Lokalisierungsdienst auslösen, die inturn Lage in Datenbanktabelle speichern wird

public static void setAlarmTimely(Context context) { 
    AlarmManager alarmMgr; 
    PendingIntent alarmIntent; 

    alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
    Intent intent = new Intent(context, AlarmReceiver.class); 
    intent.putExtra(IntentConstants.ALARM_INTENT, IntentConstants.INTENT_REQUEST_CODE_LOCATION_TRACK); 
    alarmIntent = PendingIntent 
      .getBroadcast(context, IntentConstants.INTENT_REQUEST_CODE_LOCATION_TRACK, intent, 0); 
    alarmMgr.cancel(alarmIntent); 

    Calendar calendar = Calendar.getInstance(); 
    LOGD(TAG, time + " "); 
    alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + locationCaptureTime * 60 * 1000, 
      5 * 60 * 1000, alarmIntent); 
} 

auf die Schaltfläche

den Alarm klicken Sie auf Abbrechen
AlarmManager alarmMgr; 
    PendingIntent alarmIntent; 
    LOGD(TAG, "cancelling location update"); 
    alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
    Intent intent = new Intent(context, AlarmReceiver.class); 
    intent.putExtra(IntentConstants.ALARM_INTENT, IntentConstants.INTENT_REQUEST_CODE_LOCATION_TRACK); 
    alarmIntent = PendingIntent 
      .getBroadcast(context, IntentConstants.INTENT_REQUEST_CODE_LOCATION_TRACK, intent, 0); 
    alarmMgr.cancel(alarmIntent); 
0

Sie können mit Location das tun, müssen Sie Zeitintervall einstellen

Beispiel

LocationManager = new LocationManager(); 
locationManager.requestLocationUpdates(
         LocationManager.NETWORK_PROVIDER, 
         TIME_BW_UPDATES, 
         MIN_DISTANCE_CHANGE_FOR_UPDATES, this); 

Parameter

Provider String: der Name des Anbieters mit der

MINTIME lang registrieren: minimales Zeitintervall zwischen Standortaktualisierungen in Millisekunden

MinDistance float: Mindestabstand zwischen Standortaktualisierungen, in Metern

Zuhörer Location: ein Location dessen

OnLocationChanged (Ort) Methode wird für jeden Standort Update aufgerufen werden

Sie auf dieser Seite mehr lesen kann LocationManager

0

Verwenden klebrigen Dienst dieses

zu tun
@Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     Log.e(LOG_TAG, "Service Started"); 
     try { 

      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 


     return START_STICKY; 
    } 

Dann rufen Sie dies on oncreate of service

protected void onHandleIntent(Intent intent) { 
     final Handler handler = new Handler(); 
     handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       //Log.e(LOG_TAG, "Awake - "+i); 
       // Log.i(LOG_TAG,"TEST ALARM TIME"); 
      // do your task -- here get location 
      //change the time interval as per your need. 

      handler.postDelayed(this, 300000); 
      } 
     },1000); 
    }