Android Tutorials

  • Antworten:13
  • OffenNicht stickyNicht beantwortet
6
Gelöschter Account
  • Forum-Beiträge: 7

01.02.2011 17:59:12 via Website

Danke.Werds mir mal durchschauen....
  • Forum-Beiträge: 467

05.02.2011 08:04:13 via App

immer her damit

"Hard work beats talent, when talent fails to work hard"

  • Forum-Beiträge: 1.544

06.02.2011 23:31:28 via App

Kommunikation zwischen laufendem Service und frischem Broadcastreceiver (Receiver sendet Daten an Service) :grin: Ja, das hätte ich jetzt gerne :) Vielleicht sollte ich aber eher googlen oder hier nen Thread öffnen?
Lg Ansgar
  • Forum-Beiträge: 1.544

06.02.2011 23:39:11 via App

Ok, macht einerseits Sinn, andererseits muss der Broadcastreceiver (zb für SMS-Empfang) ja auch irgendwie Aktionen auslösen, deswegen hätte ich gehofft, dass er sich auch bei einem laufendem Service 'melden' kann.. Naja, werd nochmal ein bisel googlen.
Lg Ansgar
  • Forum-Beiträge: 180

06.02.2011 23:43:29 via Website

Ich denke so ca: (habs nicht getestet)
1<service
2 android:name=".BootService">
3
4 <receiver
5 android:name=".receiver.BootReceiver">
6 <intent-filter>
7 <action
8 android:name="android.intent.action.BOOT_COMPLETED" />
9 </intent-filter>
10 </receiver>
11</service>
  • Forum-Beiträge: 1.544

06.02.2011 23:46:01 via App

Ah,
danke! Dann nehm' ich einmal so ein Tutorial und ne kalte Cola :grin: (Natürlich nur, wenn du Spaß an dem Thema hast)
Lg Ansgar
edit: Verdammt bist du schnell :)

— geändert am 06.02.2011 23:46:44

  • Forum-Beiträge: 1.544

07.02.2011 00:05:57 via App

Also ich brauche eine einzelne aktuelle GPS-Position. Vielleicht kann man das auch anders machen, aber ich habs halt erstmal so versucht. Und der request für die Ortung wird halt aus einem Service gestartet und nun soll (bei Erhalt der Position) der Service benachrichtigt werden, dass er die Locationupdates abbricht. Ich dachte, dass ich so eine einzelne aktuelle Position bekomme :) Ich vermute schon, dass das besser geht, aber wie? (erst ab 2.3 gibt es 'requestSingleLocationUpdate' leider :( )
Lg Ansgar

— geändert am 07.02.2011 00:06:35

  • Forum-Beiträge: 180

07.02.2011 00:18:25 via Website

Das kannst du direkt in deinem Service machen :D

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. :D