warten auf GPS Empfang

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • warten auf GPS Empfang

    Hi Leute,

    ich habe das Problem, dass ich nicht weiß wie ich mein skript solange warte lassen kann bis das Handy GPS Empfang hat. Aber auch generell wüsste ich gerne wie ein skipt solagen warten lasse, bis eine bestimme aktion aufgeführt wurde.



    lg

    paddy
  • Hi paddy,

    ich hab jetzt noch nichts mit GPS gemacht doch etwas solange warten lassen, bis etwas eingetreten ist hört sich für mich stark nach dem Konstrukt an:

    Java-Quellcode

    1. while(!ready) {
    2. Thread.sleep(100);
    3. }


    Ich geh da jetzt einfach mal davon aus, dass Android das gleiche macht wie eine normale Java Anwendung bei dem Aufruf ...

    Gruß,
    matze
  • Mit dem GPS-Empfang ist das so eine Sache - die Zeit ist kein wirklich gutes Kriterium für eine gute Positionsbestimmung.

    Besser ist es, einen Service für GPS-Empfang zu starten, der in mehr oder weniger regelmäßigen Abständen Mitteilungen vom GPS-Empfänger bekommt und sich aus den Daten "das beste" raussucht.

    Wenn der Benutzer dann einige Aktionen macht, vergeht einige Zeit und dann irgendwann (z.B. bei onPause der Activity) kannst du dann eine recht gute Position von deinem Service abfragen. Dann kannst du den Service auch stoppen, damit er nicht später irgendwelche unerwarteten Fehlermeldungen von sich gibt...

    Was aber eine "gute Position" ist, kannst du auch aus den Positionsdaten entnehmen, in einem Positions-Datensatz ist auch eine Angabe zur Genauigkeit.

    Die Android-Doku hat zum Thema Positionsbestimmung auch einen längeren Artikel, je nach Anwendung sind unterschiedliche Strategien sinnvoll.
    Das Leben kann so hart sein, man muss nur richtig wollen!!!
  • @UweApps sorry ich habe mich falsch ausgedrückt .... Ich wollte warten bis ich überhaupt GPS daten empfangen, d.h sicherstellen, dass meine App GPS Satelliten gefunden hat und diese auch ansteuert. Das Empfangen an sich ist kein Problem.

    @Matze thx für deine Antwort ich probiers gleich aus

    Vielen Dank trotzdem für eure Antworten
  • Aber dann bitte in einen anderen Thread auslagern, wenn du Thread.sleep in deinem Mainprogramm machst, legst du den UI-Thread lahm und dein Programm ist nicht mehr "responsiv" sprich nicht mehr ansprechbar und wirft dir einen ANR-Error.
  • @ killphil75 sag mal bist du ein hellsehere ? ok also meine App schmiert gerade dauerhaft ab und ich bekomme es nicht hin ein ganz stinknormalen thread aufzubauen. was ich gemacht habe ist eine public void Thead() und darin dann new Thread (new Runnable() { // Threadcode}); ich habe diesen Thread bewusst nicht gestartet und trotzdem schmiert es ab. Bitte schreib mir wie ich einen Thread richtig aufbaue oder wo es dazu vllt ein Tutorial gitb

    thx
  • Also ich hab mich jetzt durch ein paar Tutorials durchgearbeitet ( unter anderem auch die von killphil75 [thx nochmal] ) doch leider funktioniert es immer noch nicht !!!! =) meine app stürzt dauerhaft ab.
    Ok kann mir bitte einfach jemand ein Code schicken wie ein Thread funktioniert und was für Rechte man brauchte etc .... Ich bekomm es einfach nicht hin trozt der Tutorials. Danke im vorraus =)

    lg

    paddy
  • Hi paddy,

    poste doch einfach mal deinen bisherigen Code, zumindest den Ausschnitt, in dem du den Thread baust. Zusätzlich wie killphil schon sagt den LogCat output. Dir hier einfach irgendeinen Code hin zu knallen kann ja auch keine Lösung sein ...

    Gruß,
    matze