Hilfe bei GPS-Position

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von iAndroid, 04.06.2010.

  1. iAndroid, 04.06.2010 #1
    iAndroid

    iAndroid Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    27.05.2010
    Hi Leute,

    ich brauche Eure Hilfe. Habe es bereits seit Tagen versucht, es hinzubekommen, aber Fehlanzeige.

    Ich versuche in meiner Anwendung die aktuelle GPS-Position anzeigen zu lassen, aber es will nicht klappen.

    Ich bin um jede Hilfe dankbar.

    Vielen Dank im Voraus.

    Viele Grüße,

    iAndroid

    Hier mal mein Code:

    Code:
    
    // imports
    
    public class GPSTracker extends Activity
    {
       
        // GUI-Elemente
        public RadioButton radioButtonGPS;
        public TextView textViewGPS;
        public RadioButton radioButtonManuell;
        public EditText EditTextManuellEingeben;
         
        /** Called when the activity is first created. */
        public void onCreate(Bundle saveInstanceState)
        {
            super.onCreate(saveInstanceState);
            setContentView(R.layout.xmlGPSTracking);
           
            radioButtonGPS = (RadioButton)findViewById(R.id.GPS_RadioButton);
            textViewGPS = (TextView)findViewById(R.id.GPS_TextView);
            radioButtonManuell = (RadioButton)findViewById(R.id.Manuell_RadioButton);
            EditTextManuellEingeben = (EditText)findViewById(R.id.Manuell_EditText);
             
            // Listener 
            radioButtonGPS.setOnClickListener(new OnClickListener()
            {
                public void onClick(View v)
                {
                    if (radioButtonGPS.isChecked())
                    {
                        // GPS-Tracker wird aufgerufen
                        gpsTracker();
                    }
                    else if (!radioButtonGPS.isChecked() && radioButtonManuell.isChecked())
                    {
                        EditTextManuellEingeben.setText("Hier Adresse eingeben!");
                        EditTextManuellEingeben.setEnabled(true);
                    }   
                }
            });
     
        // Methode gpsTracker()
        private void gpsTracker()
        {
            LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    
            Criteria criteria = new Criteria();
            String provider = lm.getBestProvider(criteria, false);
           
            lm.requestLocationUpdates(provider,60000,1,locationListener);
        }
       
        // LocationListener
        private final LocationListener locationListener = new LocationListener()
        {
            public void onLocationChanged(Location l)
            {
                textViewGPS = new TextView(GPSTracker.this);  
                textViewGPS.setText("lat: " + l.getLatitude() + ", lon: " + l.getLongitude());
                setContentView(textViewGPS);
            }
    
            public void onProviderDisabled(String provider)
            {
              // TODO Auto-generated method stub
            }
           
            public void onProviderEnabled(String provider)
            {
              // TODO Auto-generated method stub
            }
            public void onStatusChanged(String provider, int status, Bundle extras)
            {
              // TODO Auto-generated method stub
            }
      };
    
      
    }
    
    
    
     
  2. joschika77, 04.06.2010 #2
    joschika77

    joschika77 Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Was steht im provider string drin? network? Das wäre das gleiche Problem was ich hatte bei einigen Telefonen. Sieh Post von mir von gestern.

    MfG
     
  3. iAndroid, 04.06.2010 #3
    iAndroid

    iAndroid Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    27.05.2010
    im provider-string steht der beste Provider drin.
     
  4. iAndroid, 04.06.2010 #4
    iAndroid

    iAndroid Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    27.05.2010
    habe es eben mal mit deiner Version probiert, leider hats auch net geklappt.
    danke trotzdem für den hinweis:).
     
  5. joschika77, 04.06.2010 #5
    joschika77

    joschika77 Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Hast du mal debuggt oder den string in die Log.cat geschrieben? Es muss doch was drin stehen. Da steht bestimmt nicht "bester Provider". Da muss "gps" drin stehen. Ich denke bei dir steht "network" drin. Es gibt auch ne Methode die dir ein String[] mit allen verfügbaren Providern gibt. Da könntest du ja auch mal reingucken, was da so drin steht.
     
  6. iAndroid, 04.06.2010 #6
    iAndroid

    iAndroid Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    27.05.2010
    hallo,

    ja habe ich. er stoppt bei folgender zeile:

    Code:
    lm.requestLocationUpdates(provider,60000,1,locationListener);
    
    Fehler: source not found.

    Hast du ne idee?
     
  7. joschika77, 04.06.2010 #7
    joschika77

    joschika77 Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Scheint irgend ein Object null zu sein. Nimm mal das final von LocationListener weg.
     
  8. vogella, 14.06.2010 #8
    vogella

    vogella Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    10
    Registriert seit:
    14.06.2010
  9. unfug, 16.06.2010 #9
    unfug

    unfug Junior Mitglied

    Beiträge:
    30
    Erhaltene Danke:
    8
    Registriert seit:
    01.12.2009
    Phone:
    T-Mobile Pulse
    Hi,
    wenn ich das richtig sehe, registrierst du einen Listener beim Service. Dieser laeuft nicht in deinem GUI-Thread, deshalb kannst du nicht von hier direkt deine Views updaten. ( ueber handler oder runInGuiThread() oder so aehnlich, oder frag nochmal danach )
    Wenn du die Position nur haben willst, wenn du den Button bedienst, dann nimm Locationmanager.getLastKnownLocation(). Falls du doch den Listener doch haben willst, vergiss nicht, den Listener beim Service auch wieder abzumelden ;)

    Gruss unfug
     

Diese Seite empfehlen