Das kannst du direkt in deinem Service machen
Zuerst implementierst du in deinen Service LocationListener.
dann hast du die 3 Methoden:
- onLocationChanged
- onProviderDisabled (gps ist deaktiviert)
- onProviderEnabled (gps ist aktiviert)
- onStatusChanged (wenn der user das gps ab oder aufdreht)
dann machst du dir noch 2 Methoden:
1private void registerLocationListener() {
2 // Register LocationManager
3 locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
4
5 try {
6 locationManager.requestLocationUpdates("gps", 0, 0, LocationActivity.this);
7 Log.i("Altitude", "LocationListener is now registered. Evering should work fine!");
8 } catch (final RuntimeException e) {
9 Log.e("Altitude", "Could not register location Listener: " + e.getMessage(), e);
10 }
11 }
12
13 private void unregisterLocationListener() {
14 if (locationManager != null) {
15 locationManager.removeUpdates(this);
16 locationManager = null;
17 }
18 }
Du musst dir oben ein Obejkt von LocationManager erstellen. Und rufst im onStart (glaube ich) registerLocationListener() auf
in der onLocationChanged schreibst du dann folgendes rein :
1if (location.getProvider().equals("gps")) {
2 if (location != null) {
3 //Location gefunden, TODO: tu das was du mit der location machen willst
4
5 unregisterLocationListener();
6 }
7 }
Wenn er dann einmal eine Position gefunden hat, höhrt er auf zu empfangen.
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.